| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -152,7 +152,7 @@ typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						uchar state; /* state flags    */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} Glyph; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef Glyph* Line; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef Glyph *Line; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Glyph attr;	 /* current char attributes */ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -303,7 +303,7 @@ static void strhandle(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void strparse(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void strreset(void); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void tclearregion(int, int, int, int); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void tclearregion(int, int, int, int, int); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void tcursor(int); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void tdeletechar(int); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static void tdeleteline(int); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1113,7 +1113,7 @@ treset(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						term.bot = term.row - 1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						term.mode = MODE_WRAP; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(0, 0, term.col-1, term.row-1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(0, 0, term.col-1, term.row-1, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tmoveto(0, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tcursor(CURSOR_SAVE); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1157,7 +1157,7 @@ tscrolldown(int orig, int n) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						LIMIT(n, 0, term.bot-orig+1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(0, term.bot-n+1, term.col-1, term.bot); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(0, term.bot-n+1, term.col-1, term.bot, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(i = term.bot; i >= orig+n; i--) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							temp = term.line[i]; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1177,7 +1177,7 @@ tscrollup(int orig, int n) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Line temp; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						LIMIT(n, 0, term.bot-orig+1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(0, orig, term.col-1, orig+n-1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(0, orig, term.col-1, orig+n-1, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(i = orig; i <= term.bot-n; i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 temp = term.line[i]; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1305,7 +1305,7 @@ tsetchar(char *c, Glyph *attr, int x, int y) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					tclearregion(int x1, int y1, int x2, int y2) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					tclearregion(int x1, int y1, int x2, int y2, int bce) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int x, y, temp; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(x1 > x2) | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1320,8 +1320,15 @@ tclearregion(int x1, int y1, int x2, int y2) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(y = y1; y <= y2; y++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							term.dirty[y] = 1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for(x = x1; x <= x2; x++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								term.line[y][x].state = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							for(x = x1; x <= x2; x++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(bce) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									term.line[y][x] = term.c.attr; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									memcpy(term.line[y][x].c, " ", 2); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									term.line[y][x].state |= GLYPH_SET; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									term.line[y][x].state = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1334,13 +1341,13 @@ tdeletechar(int n) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						term.dirty[term.c.y] = 1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(src >= term.col) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							tclearregion(term.c.x, term.c.y, term.col-1, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							tclearregion(term.c.x, term.c.y, term.col-1, term.c.y, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								size * sizeof(Glyph)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(term.col-n, term.c.y, term.col-1, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(term.col-n, term.c.y, term.col-1, term.c.y, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1352,13 +1359,13 @@ tinsertblank(int n) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						term.dirty[term.c.y] = 1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(dst >= term.col) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							tclearregion(term.c.x, term.c.y, term.col-1, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							tclearregion(term.c.x, term.c.y, term.col-1, term.c.y, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								size * sizeof(Glyph)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(src, term.c.y, dst - 1, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						tclearregion(src, term.c.y, dst - 1, term.c.y, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1542,8 +1549,10 @@ tsetmode(bool priv, bool set, int *args, int narg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case 47: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case 1047: { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									alt = IS_SET(MODE_ALTSCREEN); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if(alt) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										tclearregion(0, 0, term.col-1, term.row-1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if(alt) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										tclearregion(0, 0, term.col-1, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												term.row-1, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if(set ^ alt)		/* set is always 1 or 0 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										tswapscreen(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if(*args != 1049) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1662,17 +1671,19 @@ csihandle(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sel.bx = -1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							switch(csiescseq.arg[0]) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case 0: /* below */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(term.c.x, term.c.y, term.col-1, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(term.c.y < term.row-1) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									tclearregion(0, term.c.y+1, term.col-1, term.row-1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(term.c.x, term.c.y, term.col-1, term.c.y, 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(term.c.y < term.row-1) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									tclearregion(0, term.c.y+1, term.col-1, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											term.row-1, 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case 1: /* above */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(term.c.y > 1) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									tclearregion(0, 0, term.col-1, term.c.y-1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(0, term.c.y, term.c.x, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									tclearregion(0, 0, term.col-1, term.c.y-1, 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(0, term.c.y, term.c.x, term.c.y, 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case 2: /* all */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(0, 0, term.col-1, term.row-1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(0, 0, term.col-1, term.row-1, 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							default: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								goto unknown; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1681,13 +1692,14 @@ csihandle(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						case 'K': /* EL -- Clear line */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							switch(csiescseq.arg[0]) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case 0: /* right */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(term.c.x, term.c.y, term.col-1, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(term.c.x, term.c.y, term.col-1, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										term.c.y, 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case 1: /* left */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(0, term.c.y, term.c.x, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(0, term.c.y, term.c.x, term.c.y, 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case 2: /* all */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(0, term.c.y, term.col-1, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tclearregion(0, term.c.y, term.col-1, term.c.y, 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							break; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1712,7 +1724,8 @@ csihandle(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						case 'X': /* ECH -- Erase <n> char */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							DEFAULT(csiescseq.arg[0], 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							tclearregion(term.c.x, term.c.y, term.c.x + csiescseq.arg[0], term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							tclearregion(term.c.x, term.c.y, term.c.x + csiescseq.arg[0], | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									term.c.y, 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						case 'P': /* DCH -- Delete <n> char */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							DEFAULT(csiescseq.arg[0], 1); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2505,6 +2518,7 @@ xinit(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							xw.fy = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* Events */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						attrs.background_pixel = dc.col[defaultbg].pixel; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						attrs.border_pixel = dc.col[defaultbg].pixel; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						attrs.bit_gravity = NorthWestGravity; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2898,6 +2912,7 @@ drawregion(int x1, int y1, int x2, int y2) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										ox = x; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										base = new; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									sl = utf8size(new.c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									memcpy(buf+ib, new.c, sl); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									ib += sl; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |