DEADSOFTWARE

moving platforms experiment (DO NOT USE YET!)
authorKetmar Dark <ketmar@ketmar.no-ip.org>
Fri, 1 Sep 2017 09:28:41 +0000 (12:28 +0300)
committerKetmar Dark <ketmar@ketmar.no-ip.org>
Fri, 1 Sep 2017 19:17:53 +0000 (22:17 +0300)
src/game/g_basic.pas
src/game/g_gfx.pas
src/game/g_map.pas
src/game/g_panel.pas
src/game/g_saveload.pas
src/mapdef/mapdef.txt
src/shared/MAPDEF.pas
src/shared/mapdef.inc
src/shared/xdynrec.pas

index 53177473ac59a0c7da0a4f9d264fd60167f80212..8069029bc2c8338113244ef0f753b50659652a5d 100644 (file)
@@ -40,13 +40,13 @@ type
 function g_CreateUID(UIDType: Byte): Word;
 function g_GetUIDType(UID: Word): Byte;
 function g_Collide(X1, Y1: Integer; Width1, Height1: Word;
-                   X2, Y2: Integer; Width2, Height2: Word): Boolean;
+                   X2, Y2: Integer; Width2, Height2: Word): Boolean; inline;
 function g_CollideLine(x1, y1, x2, y2, rX, rY: Integer; rWidth, rHeight: Word): Boolean;
-function g_CollidePoint(X, Y, X2, Y2: Integer; Width, Height: Word): Boolean;
-function g_CollideLevel(X, Y: Integer; Width, Height: Word): Boolean;
+function g_CollidePoint(X, Y, X2, Y2: Integer; Width, Height: Word): Boolean; inline;
+function g_CollideLevel(X, Y: Integer; Width, Height: Word): Boolean; inline;
 function g_CollideAround(X1, Y1: Integer; Width1, Height1: Word;
-                         X2, Y2: Integer; Width2, Height2: Word): Boolean;
-function g_CollidePlayer(X, Y: Integer; Width, Height: Word): Boolean;
+                         X2, Y2: Integer; Width2, Height2: Word): Boolean; inline;
+function g_CollidePlayer(X, Y: Integer; Width, Height: Word): Boolean; inline;
 function g_PatchLength(X1, Y1, X2, Y2: Integer): Word;
 function g_TraceVector(X1, Y1, X2, Y2: Integer): Boolean; // `true`: no wall hit
 function g_GetAcidHit(X, Y: Integer; Width, Height: Word): Byte;
@@ -103,7 +103,7 @@ begin
   Result := Min(Round(Hypot(Abs(X2-X1), Abs(Y2-Y1))), 65535);
 end;
 
-function g_CollideLevel(X, Y: Integer; Width, Height: Word): Boolean;
+function g_CollideLevel(X, Y: Integer; Width, Height: Word): Boolean; inline;
 begin
   result := g_Map_CollidePanel(X, Y, Width, Height, (PANEL_WALL or PANEL_CLOSEDOOR or PANEL_OPENDOOR), false);
 end;
@@ -129,7 +129,7 @@ begin
 end;
 *)
 
-function g_CollidePlayer(X, Y: Integer; Width, Height: Word): Boolean;
+function g_CollidePlayer(X, Y: Integer; Width, Height: Word): Boolean; inline;
 var
   a: Integer;
 begin
@@ -261,7 +261,7 @@ begin
 end;
 
 function g_Collide(X1, Y1: Integer; Width1, Height1: Word;
-                   X2, Y2: Integer; Width2, Height2: Word): Boolean;
+                   X2, Y2: Integer; Width2, Height2: Word): Boolean; inline;
 begin
   Result := not ( ((Y1 + Height1 <= Y2) or
                    (Y2 + Height2 <= Y1)) or
@@ -270,7 +270,7 @@ begin
 end;
 
 function g_CollideAround(X1, Y1: Integer; Width1, Height1: Word;
-                         X2, Y2: Integer; Width2, Height2: Word): Boolean;
+                         X2, Y2: Integer; Width2, Height2: Word): Boolean; inline;
 begin
   Result := g_Collide(X1, Y1, Width1, Height1, X2, Y2, Width2, Height2) or
             g_Collide(X1+1, Y1, Width1, Height1, X2, Y2, Width2, Height2) or
@@ -279,7 +279,7 @@ begin
             g_Collide(X1, Y1-1, Width1, Height1, X2, Y2, Width2, Height2);
 end;
 
-function c(X1, Y1, Width1, Height1, X2, Y2, Width2, Height2: Integer): Boolean;
+function c(X1, Y1, Width1, Height1, X2, Y2, Width2, Height2: Integer): Boolean; inline;
 begin
   Result := not (((Y1 + Height1 <= Y2) or
                   (Y1           >= Y2 + Height2)) or
@@ -287,13 +287,13 @@ begin
                    (X1          >= X2 + Width2)));
 end;
 
-function g_Collide2(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer): Boolean;
+function g_Collide2(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer): Boolean; inline;
 begin
   //Result :=  not (((Y2 <= Y3) or (Y1  >= Y4)) or ((X2 <= X3) or (X1  >= X4)));
   Result := c(X1, Y1, X2-X1, Y2-Y1, X3, Y3, X4-X3, Y4-Y3);
 end;
 
-function g_CollidePoint(X, Y, X2, Y2: Integer; Width, Height: Word): Boolean;
+function g_CollidePoint(X, Y, X2, Y2: Integer; Width, Height: Word): Boolean; inline;
 begin
   X := X-X2;
   Y := Y-Y2;
index fc00d5855ae5c89d639250cf9c587d8c498df246..7903e13b28ca2a8d139e29b42ab64c4c3f937911 100644 (file)
@@ -54,7 +54,7 @@ function  g_GFX_GetMax(): Integer;
 
 procedure g_GFX_OnceAnim(X, Y: Integer; Anim: TAnimation; AnimType: Byte = 0);
 
-procedure g_Mark(x, y, Width, Height: Integer; t: Byte; st: Boolean);
+procedure g_Mark(x, y, Width, Height: Integer; t: Byte; st: Boolean=true);
 
 procedure g_GFX_Update();
 procedure g_GFX_Draw();
@@ -196,7 +196,7 @@ begin
 end;
 
 
-procedure g_Mark(x, y, Width, Height: Integer; t: Byte; st: Boolean);
+procedure g_Mark(x, y, Width, Height: Integer; t: Byte; st: Boolean=true);
 {$IF not DEFINED(HAS_COLLIDE_BITMAP)}
 var
   part: PParticle;
index 0df83bb087e16cf1c7b3fd090426c584c30669ea..9470057306ae27f956b9b1c01b87ca49cdf7cd79 100644 (file)
@@ -193,6 +193,7 @@ var
   gWADHash: TMD5Digest;
   BackID:  DWORD = DWORD(-1);
   gExternalResources: TStringList;
+  gMovingWallIds: array of Integer = nil;
 
   gdbg_map_use_accel_render: Boolean = true;
   gdbg_map_use_accel_coldet: Boolean = true;
@@ -1564,6 +1565,8 @@ var
   pttit: PTRec;
   pannum, trignum, cnt, tgpid: Integer;
   stt: UInt64;
+  moveSpeed{, moveStart, moveEnd}: TDFPoint;
+  //moveActive: Boolean;
 begin
   mapGrid.Free();
   mapGrid := nil;
@@ -1942,6 +1945,18 @@ begin
         // set 'gamePanelId' field to panel id
         rec.userPanelId := PanelID; // remember game panel id, we'll fix triggers later
 
+        // setup lifts
+        moveSpeed := rec.moveSpeed;
+        //moveStart := rec.moveStart;
+        //moveEnd := rec.moveEnd;
+        //moveActive := rec['move_active'].varvalue;
+        if not moveSpeed.isZero then
+        begin
+          SetLength(gMovingWallIds, Length(gMovingWallIds)+1);
+          gMovingWallIds[High(gMovingWallIds)] := PanelID;
+          //e_LogWritefln('found moving panel ''%s'' (idx=%s; id=%s)', [rec.id, pannum, PanelID]);
+        end;
+
         //e_LogWritefln('PANEND: pannum=%s', [pannum]);
 
         g_Game_StepLoading();
@@ -2315,6 +2330,7 @@ begin
   FreePanelArray(gSteps);
   FreePanelArray(gLifts);
   FreePanelArray(gBlockMon);
+  gMovingWallIds := nil;
 
   if BackID <> DWORD(-1) then
   begin
@@ -2351,9 +2367,7 @@ var
     i: Integer;
 
   begin
-    if panels <> nil then
-      for i := 0 to High(panels) do
-        panels[i].Update();
+    for i := 0 to High(panels) do panels[i].Update();
   end;
 
 begin
index 7f3e35f9a0b4fabe792e93b17e435450c323fad5..3b2830e634d471e3eb0796b37b5d504cf50ea1e8 100644 (file)
@@ -42,6 +42,11 @@ type
                             True:  (AnTex: TAnimation);
                         end;
 
+    mMovingSpeed: TDFPoint;
+    mMovingStart: TDFPoint;
+    mMovingEnd: TDFPoint;
+    mMovingActive: Boolean;
+
   private
     function getx1 (): Integer; inline;
     function gety1 (): Integer; inline;
@@ -101,6 +106,13 @@ type
     property moved: Boolean read FMoved write FMoved; // Ñîõðàíÿòü ïðè SaveState?
     property liftType: Byte read FLiftType write FLiftType; // Ñîõðàíÿòü ïðè SaveState?
     property lastAnimLoop: Byte read FLastAnimLoop write FLastAnimLoop; // Ñîõðàíÿòü ïðè SaveState?
+
+    property movingActive: Boolean read mMovingActive write mMovingActive;
+
+  public
+    property movingSpeed: TDFPoint read mMovingSpeed write mMovingSpeed;
+    property movingStart: TDFPoint read mMovingStart write mMovingStart;
+    property movingEnd: TDFPoint read mMovingEnd write mMovingEnd;
   end;
 
   TPanelArray = Array of TPanel;
@@ -109,7 +121,7 @@ implementation
 
 uses
   SysUtils, g_basic, g_map, g_game, e_graphics,
-  g_console, g_language, e_log, GL;
+  g_console, g_language, g_monsters, g_player, e_log, GL;
 
 const
   PANEL_SIGNATURE = $4C4E4150; // 'PANL'
@@ -134,6 +146,11 @@ begin
   LastAnimLoop := 0;
   Moved := False;
 
+  mMovingSpeed := PanelRec.moveSpeed;
+  mMovingStart := PanelRec.moveStart;
+  mMovingEnd := PanelRec.moveEnd;
+  mMovingActive := PanelRec['move_active'].varvalue;
+
 // Òèï ïàíåëè:
   PanelType := PanelRec.PanelType;
   Enabled := True;
@@ -388,7 +405,86 @@ begin
   end;
 end;
 
+
+var
+  monMoveList: array of TMonster = nil;
+  monMoveListUsed: Integer = 0;
+
 procedure TPanel.Update();
+var
+  nx, ny: Integer;
+  f: Integer;
+
+  function doPush (px, py, pw, ph: Integer; out dx, dy: Integer): Boolean;
+  begin
+    result := g_Collide(px, py, pw, ph, nx, ny, Width, Height);
+    if result then
+    begin
+      // need to push
+           if (mMovingSpeed.X < 0) then dx := nx-(px+pw)
+      else if (mMovingSpeed.X > 0) then dx := (nx+Width)-px
+      else dx := 0;
+           if (mMovingSpeed.Y < 0) then dy := ny-(py+ph)
+      else if (mMovingSpeed.Y > 0) then dy := (ny+Height)-py
+      else dy := 0;
+    end
+    else
+    begin
+      dx := 0;
+      dy := 0;
+    end;
+  end;
+
+  function monMove (mon: TMonster): Boolean;
+  begin
+    result := false; // don't stop
+    mon.GameX := mon.GameX+mMovingSpeed.X;
+    mon.GameY := mon.GameY+mMovingSpeed.Y;
+    if (monMoveListUsed >= Length(monMoveList)) then SetLength(monMoveList, monMoveListUsed+64);
+    monMoveList[monMoveListUsed] := mon;
+    Inc(monMoveListUsed);
+  end;
+
+  function monPush (mon: TMonster): Boolean;
+  var
+    px, py, pw, ph, dx, dy: Integer;
+  begin
+    result := false; // don't stop
+    mon.getMapBox(px, py, pw, ph);
+    if doPush(px, py, pw, ph, dx, dy) then
+    begin
+      mon.GameX := mon.GameX+dx;
+      mon.GameY := mon.GameY+dy;
+      if (monMoveListUsed >= Length(monMoveList)) then SetLength(monMoveList, monMoveListUsed+64);
+      monMoveList[monMoveListUsed] := mon;
+      Inc(monMoveListUsed);
+    end;
+  end;
+
+  procedure plrMove (plr: TPlayer);
+  var
+    px, py, pw, ph, dx, dy: Integer;
+  begin
+    if (plr = nil) then exit;
+    plr.getMapBox(px, py, pw, ph);
+    if (py+ph <> Y) then
+    begin
+      // push player
+      if doPush(px, py, pw, ph, dx, dy) then
+      begin
+        plr.GameX := plr.GameX+dx;
+        plr.GameY := plr.GameY+dy;
+        plr.positionChanged();
+      end;
+      exit;
+    end;
+    if (px+pw <= X) then exit;
+    if (px >= X+Width) then exit;
+    plr.GameX := plr.GameX+mMovingSpeed.X;
+    plr.GameY := plr.GameY+mMovingSpeed.Y;
+    plr.positionChanged();
+  end;
+
 begin
   if Enabled and (FCurTexture >= 0) and
     (FTextureIDs[FCurTexture].Anim) and
@@ -399,6 +495,26 @@ begin
     FCurFrame := FTextureIDs[FCurTexture].AnTex.CurrentFrame;
     FCurFrameCount := FTextureIDs[FCurTexture].AnTex.CurrentCounter;
   end;
+
+  if mMovingActive and (not mMovingSpeed.isZero) then
+  begin
+    monMoveListUsed := 0;
+    nx := X+mMovingSpeed.X;
+    ny := Y+mMovingSpeed.Y;
+    g_Mons_ForEachAt(X, Y-1, Width, 1, monMove);
+    g_Mons_ForEachAt(nx, ny, Width, Height, monPush);
+    for f := 0 to High(gPlayers) do plrMove(gPlayers[f]);
+         if (mMovingSpeed.X < 0) and (nx <= mMovingStart.X) then mMovingSpeed.X := -mMovingSpeed.X
+    else if (mMovingSpeed.X > 0) and (nx >= mMovingEnd.X) then mMovingSpeed.X := -mMovingSpeed.X;
+         if (mMovingSpeed.Y < 0) and (ny <= mMovingStart.Y) then mMovingSpeed.Y := -mMovingSpeed.Y
+    else if (mMovingSpeed.Y > 0) and (ny >= mMovingEnd.Y) then mMovingSpeed.Y := -mMovingSpeed.Y;
+    //!!!g_Mark(X, Y, Width, Height, MARK_FREE);
+    X := nx;
+    Y := ny;
+    //!!!g_Mark(X, Y, Width, Height, MARK_WALL);
+    if (proxyId >= 0) then mapGrid.moveBody(proxyId, nx, ny);
+    for f := 0 to monMoveListUsed-1 do monMoveList[f].positionChanged();
+  end;
 end;
 
 procedure TPanel.SetFrame(Frame: Integer; Count: Byte);
@@ -565,6 +681,14 @@ begin
 // Åñëè äà - ñîõðàíÿåì àíèìàöèþ:
   if anim then
     FTextureIDs[FCurTexture].AnTex.SaveState(Mem);
+  // moving platform state
+  Mem.WriteInt(mMovingSpeed.X);
+  Mem.WriteInt(mMovingSpeed.Y);
+  Mem.WriteInt(mMovingStart.X);
+  Mem.WriteInt(mMovingStart.Y);
+  Mem.WriteInt(mMovingEnd.X);
+  Mem.WriteInt(mMovingEnd.Y);
+  Mem.WriteBoolean(mMovingActive);
 end;
 
 procedure TPanel.LoadState(var Mem: TBinMemoryReader);
@@ -601,6 +725,14 @@ begin
            'TPanel.LoadState: No animation object');
     FTextureIDs[FCurTexture].AnTex.LoadState(Mem);
   end;
+  // moving platform state
+  Mem.ReadInt(mMovingSpeed.X);
+  Mem.ReadInt(mMovingSpeed.Y);
+  Mem.ReadInt(mMovingStart.X);
+  Mem.ReadInt(mMovingStart.Y);
+  Mem.ReadInt(mMovingEnd.X);
+  Mem.ReadInt(mMovingEnd.Y);
+  Mem.ReadBoolean(mMovingActive);
 end;
 
 end.
index a54e26be05338c02430c418a9954762f1091a213..bf56c6eeb0afb6b227e1dcbee88595b806f49489 100644 (file)
@@ -39,7 +39,7 @@ uses
 
 const
   SAVE_SIGNATURE = $56534644; // 'DFSV'
-  SAVE_VERSION = $04;
+  SAVE_VERSION = $05;
   END_MARKER_STRING = 'END';
   PLAYER_VIEW_SIGNATURE = $57564C50; // 'PLVW'
   OBJ_SIGNATURE = $4A424F5F; // '_OBJ'
index 71e712f138c1fe05c01325febf0098730ef8d13d..9851afea060f24d772123b5230eddc14f4c7b752 100644 (file)
@@ -52,6 +52,11 @@ TPanelRec_1 is "panel" size 18 bytes binblock 2 {
   PanelType is "type" type ushort offset 14 bitset unique PanelType;
   Alpha is "alpha" type ubyte offset 16 default 0 omitdefault;
   Flags is "flags" type ubyte offset 17 bitset PanelFlag default PANEL_FLAG_NONE omitdefault;
+  // moving platform options, not in binary
+  MoveSpeed is "move_speed" type point default (0 0) omitdefault;
+  MoveStart is "move_start" type point default (0 0) omitdefault;
+  MoveEnd is "move_end" type point default (0 0) omitdefault;
+  MoveActive is "move_active" type bool default false omitdefault;
   // not in binary
   //Id is "id" type string default "" omitdefault;
   // internals
index 6400264bb438dd69ca6907eb7dbf52f362a66ff4..8f6a3cefbc4a080e54a1dacc20b173b7ae1f7059 100644 (file)
@@ -40,6 +40,8 @@ type
 
   public
     constructor Create (ax, ay: LongInt);
+
+    function isZero (): Boolean; inline;
   end;
 
   Char16     = packed array[0..15] of Char;
@@ -90,6 +92,10 @@ type
     function Alpha (): Byte; inline;
     function Flags (): Byte; inline;
 
+    function moveSpeed (): TDFPoint; inline;
+    function moveStart (): TDFPoint; inline;
+    function moveEnd (): TDFPoint; inline;
+
     // texture
     function Resource (): AnsiString; inline;
     function Anim (): Boolean; inline;
@@ -145,6 +151,7 @@ uses
 
 // ////////////////////////////////////////////////////////////////////////// //
 constructor TDFPoint.Create (ax, ay: LongInt); begin X := ax; Y := ay; end;
+function TDFPoint.isZero (): Boolean; inline; begin result := (X = 0) and (Y = 0); end;
 
 
 // ////////////////////////////////////////////////////////////////////////// //
@@ -180,6 +187,12 @@ begin
 end;
 
 
+// ////////////////////////////////////////////////////////////////////////// //
+function TDynRecordHelper.moveSpeed (): TDFPoint; inline; begin result := getPointField('move_speed'); end;
+function TDynRecordHelper.moveStart (): TDFPoint; inline; begin result := getPointField('move_start'); end;
+function TDynRecordHelper.moveEnd (): TDFPoint; inline; begin result := getPointField('move_end'); end;
+
+
 // ////////////////////////////////////////////////////////////////////////// //
 function TDynRecordHelper.getFieldWithType (const aname: AnsiString; atype: TDynField.TType): TDynField; inline;
 begin
index d744d9394d7e6ba0ea5cfeb9a0f14bb58ad24049..6e3aa03bb288434133af05acf2e1067871bb337f 100644 (file)
@@ -374,595 +374,609 @@ const defaultMapDef: AnsiString = ''+
   #102#115#101#116#32#49#55#32#98#105#116#115#101#116#32#80#97#110#101#108#70+
   #108#97#103#32#100#101#102#97#117#108#116#32#80#65#78#69#76#95#70#76#65#71+
   #95#78#79#78#69#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#47+
-  #47#32#110#111#116#32#105#110#32#98#105#110#97#114#121#10#32#32#47#47#73#100+
-  #32#105#115#32#34#105#100#34#32#116#121#112#101#32#115#116#114#105#110#103+
-  #32#100#101#102#97#117#108#116#32#34#34#32#111#109#105#116#100#101#102#97+
-  #117#108#116#59#10#32#32#47#47#32#105#110#116#101#114#110#97#108#115#10#32+
-  #32#80#97#110#73#100#120#32#105#115#32#34#112#97#110#105#100#120#34#32#116+
-  #121#112#101#32#117#105#110#116#32#105#110#116#101#114#110#97#108#59#10#125+
-  #10#10#84#73#116#101#109#82#101#99#95#49#32#105#115#32#34#105#116#101#109#34+
-  #32#115#105#122#101#32#49#48#32#98#121#116#101#115#32#98#105#110#98#108#111+
-  #99#107#32#51#32#123#10#32#32#47#47#88#32#105#115#32#34#120#34#32#116#121+
-  #112#101#32#105#110#116#32#111#102#102#115#101#116#32#48#59#10#32#32#47#47+
-  #89#32#105#115#32#34#121#34#32#116#121#112#101#32#105#110#116#32#111#102#102+
-  #115#101#116#32#52#59#10#32#32#80#111#115#32#105#115#32#34#112#111#115#105+
-  #116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102+
-  #115#101#116#32#48#32#97#115#32#120#121#59#10#32#32#73#116#101#109#84#121+
-  #112#101#32#105#115#32#34#116#121#112#101#34#32#116#121#112#101#32#117#98+
-  #121#116#101#32#111#102#102#115#101#116#32#56#32#101#110#117#109#32#73#116+
-  #101#109#59#10#32#32#79#112#116#105#111#110#115#32#105#115#32#34#111#112#116+
-  #105#111#110#115#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#57#32#98#105#116#115#101#116#32#73#116#101#109#79#112#116+
-  #105#111#110#32#100#101#102#97#117#108#116#32#73#84#69#77#95#79#80#84#73#79+
-  #78#95#78#79#78#69#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32+
+  #47#32#109#111#118#105#110#103#32#112#108#97#116#102#111#114#109#32#111#112+
+  #116#105#111#110#115#44#32#110#111#116#32#105#110#32#98#105#110#97#114#121+
+  #10#32#32#77#111#118#101#83#112#101#101#100#32#105#115#32#34#109#111#118#101+
+  #95#115#112#101#101#100#34#32#116#121#112#101#32#112#111#105#110#116#32#100+
+  #101#102#97#117#108#116#32#40#48#32#48#41#32#111#109#105#116#100#101#102#97+
+  #117#108#116#59#10#32#32#77#111#118#101#83#116#97#114#116#32#105#115#32#34+
+  #109#111#118#101#95#115#116#97#114#116#34#32#116#121#112#101#32#112#111#105+
+  #110#116#32#100#101#102#97#117#108#116#32#40#48#32#48#41#32#111#109#105#116+
+  #100#101#102#97#117#108#116#59#10#32#32#77#111#118#101#69#110#100#32#105#115+
+  #32#34#109#111#118#101#95#101#110#100#34#32#116#121#112#101#32#112#111#105+
+  #110#116#32#100#101#102#97#117#108#116#32#40#48#32#48#41#32#111#109#105#116+
+  #100#101#102#97#117#108#116#59#10#32#32#77#111#118#101#65#99#116#105#118#101+
+  #32#105#115#32#34#109#111#118#101#95#97#99#116#105#118#101#34#32#116#121#112+
+  #101#32#98#111#111#108#32#100#101#102#97#117#108#116#32#102#97#108#115#101+
+  #32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#47#47#32#110#111+
+  #116#32#105#110#32#98#105#110#97#114#121#10#32#32#47#47#73#100#32#105#115#32+
+  #34#105#100#34#32#116#121#112#101#32#115#116#114#105#110#103#32#100#101#102+
+  #97#117#108#116#32#34#34#32#111#109#105#116#100#101#102#97#117#108#116#59#10+
+  #32#32#47#47#32#105#110#116#101#114#110#97#108#115#10#32#32#80#97#110#73#100+
+  #120#32#105#115#32#34#112#97#110#105#100#120#34#32#116#121#112#101#32#117+
+  #105#110#116#32#105#110#116#101#114#110#97#108#59#10#125#10#10#84#73#116#101+
+  #109#82#101#99#95#49#32#105#115#32#34#105#116#101#109#34#32#115#105#122#101+
+  #32#49#48#32#98#121#116#101#115#32#98#105#110#98#108#111#99#107#32#51#32#123+
+  #10#32#32#47#47#88#32#105#115#32#34#120#34#32#116#121#112#101#32#105#110#116+
+  #32#111#102#102#115#101#116#32#48#59#10#32#32#47#47#89#32#105#115#32#34#121+
+  #34#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#52#59#10+
+  #32#32#80#111#115#32#105#115#32#34#112#111#115#105#116#105#111#110#34#32#116+
+  #121#112#101#32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#32#97+
+  #115#32#120#121#59#10#32#32#73#116#101#109#84#121#112#101#32#105#115#32#34+
+  #116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
+  #115#101#116#32#56#32#101#110#117#109#32#73#116#101#109#59#10#32#32#79#112+
+  #116#105#111#110#115#32#105#115#32#34#111#112#116#105#111#110#115#34#32#116+
+  #121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#57#32#98+
+  #105#116#115#101#116#32#73#116#101#109#79#112#116#105#111#110#32#100#101#102+
+  #97#117#108#116#32#73#84#69#77#95#79#80#84#73#79#78#95#78#79#78#69#32#111+
+  #109#105#116#100#101#102#97#117#108#116#59#10#32#32#47#47#32#110#111#116#32+
+  #105#110#32#98#105#110#97#114#121#10#32#32#47#47#73#100#32#105#115#32#34#105+
+  #100#34#32#116#121#112#101#32#115#116#114#105#110#103#32#100#101#102#97#117+
+  #108#116#32#34#34#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32+
+  #47#47#32#105#110#116#101#114#110#97#108#115#10#32#32#73#116#101#109#73#100+
+  #120#32#105#115#32#34#105#116#101#109#105#100#120#34#32#116#121#112#101#32+
+  #117#105#110#116#32#105#110#116#101#114#110#97#108#59#10#125#10#10#84#77#111+
+  #110#115#116#101#114#82#101#99#95#49#32#105#115#32#34#109#111#110#115#116+
+  #101#114#34#32#115#105#122#101#32#49#48#32#98#121#116#101#115#32#98#105#110+
+  #98#108#111#99#107#32#53#32#123#10#32#32#47#47#88#32#105#115#32#34#120#34#32+
+  #116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#48#59#10#32#32+
+  #47#47#89#32#105#115#32#34#121#34#32#116#121#112#101#32#105#110#116#32#111+
+  #102#102#115#101#116#32#52#59#10#32#32#80#111#115#32#105#115#32#34#112#111+
+  #115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111+
+  #102#102#115#101#116#32#48#32#97#115#32#120#121#59#10#32#32#77#111#110#115+
+  #116#101#114#84#121#112#101#32#105#115#32#34#116#121#112#101#34#32#116#121+
+  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#56#32#101#110+
+  #117#109#32#77#111#110#115#116#101#114#59#10#32#32#68#105#114#101#99#116#105+
+  #111#110#32#105#115#32#34#100#105#114#101#99#116#105#111#110#34#32#116#121+
+  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#57#32#101#110+
+  #117#109#32#68#105#114#84#121#112#101#32#100#101#102#97#117#108#116#32#68#73+
+  #82#95#76#69#70#84#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32+
   #47#47#32#110#111#116#32#105#110#32#98#105#110#97#114#121#10#32#32#47#47#73+
   #100#32#105#115#32#34#105#100#34#32#116#121#112#101#32#115#116#114#105#110+
   #103#32#100#101#102#97#117#108#116#32#34#34#32#111#109#105#116#100#101#102+
   #97#117#108#116#59#10#32#32#47#47#32#105#110#116#101#114#110#97#108#115#10+
-  #32#32#73#116#101#109#73#100#120#32#105#115#32#34#105#116#101#109#105#100+
+  #32#32#77#111#110#115#73#100#120#32#105#115#32#34#109#111#110#115#105#100+
   #120#34#32#116#121#112#101#32#117#105#110#116#32#105#110#116#101#114#110#97+
-  #108#59#10#125#10#10#84#77#111#110#115#116#101#114#82#101#99#95#49#32#105+
-  #115#32#34#109#111#110#115#116#101#114#34#32#115#105#122#101#32#49#48#32#98+
-  #121#116#101#115#32#98#105#110#98#108#111#99#107#32#53#32#123#10#32#32#47#47+
-  #88#32#105#115#32#34#120#34#32#116#121#112#101#32#105#110#116#32#111#102#102+
-  #115#101#116#32#48#59#10#32#32#47#47#89#32#105#115#32#34#121#34#32#116#121+
-  #112#101#32#105#110#116#32#111#102#102#115#101#116#32#52#59#10#32#32#80#111+
-  #115#32#105#115#32#34#112#111#115#105#116#105#111#110#34#32#116#121#112#101+
-  #32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#32#97#115#32#120+
-  #121#59#10#32#32#77#111#110#115#116#101#114#84#121#112#101#32#105#115#32#34+
-  #116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#56#32#101#110#117#109#32#77#111#110#115#116#101#114#59#10#32+
-  #32#68#105#114#101#99#116#105#111#110#32#105#115#32#34#100#105#114#101#99+
-  #116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#57#32#101#110#117#109#32#68#105#114#84#121#112#101#32#100+
-  #101#102#97#117#108#116#32#68#73#82#95#76#69#70#84#32#111#109#105#116#100+
-  #101#102#97#117#108#116#59#10#32#32#47#47#32#110#111#116#32#105#110#32#98+
-  #105#110#97#114#121#10#32#32#47#47#73#100#32#105#115#32#34#105#100#34#32#116+
-  #121#112#101#32#115#116#114#105#110#103#32#100#101#102#97#117#108#116#32#34+
-  #34#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#47#47#32#105+
-  #110#116#101#114#110#97#108#115#10#32#32#77#111#110#115#73#100#120#32#105+
-  #115#32#34#109#111#110#115#105#100#120#34#32#116#121#112#101#32#117#105#110+
-  #116#32#105#110#116#101#114#110#97#108#59#10#125#10#10#84#65#114#101#97#82+
-  #101#99#95#49#32#105#115#32#34#97#114#101#97#34#32#115#105#122#101#32#49#48+
-  #32#98#121#116#101#115#32#98#105#110#98#108#111#99#107#32#52#32#123#10#32#32+
-  #47#47#88#32#105#115#32#34#120#34#32#116#121#112#101#32#105#110#116#32#111+
-  #102#102#115#101#116#32#48#59#10#32#32#47#47#89#32#105#115#32#34#121#34#32+
-  #116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#52#59#10#32#32+
-  #80#111#115#32#105#115#32#34#112#111#115#105#116#105#111#110#34#32#116#121+
-  #112#101#32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#32#97#115+
-  #32#120#121#59#10#32#32#65#114#101#97#84#121#112#101#32#105#115#32#34#116+
-  #121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
-  #101#116#32#56#32#101#110#117#109#32#65#114#101#97#84#121#112#101#59#10#32+
-  #32#68#105#114#101#99#116#105#111#110#32#105#115#32#34#100#105#114#101#99+
-  #116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#57#32#101#110#117#109#32#68#105#114#84#121#112#101#32#100+
-  #101#102#97#117#108#116#32#68#73#82#95#76#69#70#84#32#111#109#105#116#100+
-  #101#102#97#117#108#116#59#10#32#32#47#47#32#110#111#116#32#105#110#32#98+
-  #105#110#97#114#121#10#32#32#47#47#73#100#32#105#115#32#34#105#100#34#32#116+
-  #121#112#101#32#115#116#114#105#110#103#32#100#101#102#97#117#108#116#32#34+
-  #34#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#47#47#32#105+
-  #110#116#101#114#110#97#108#115#10#32#32#65#114#101#97#73#100#120#32#105#115+
-  #32#34#97#114#101#97#105#100#120#34#32#116#121#112#101#32#117#105#110#116#32+
-  #105#110#116#101#114#110#97#108#59#10#125#10#10#84#84#114#105#103#103#101+
-  #114#82#101#99#95#49#32#105#115#32#34#116#114#105#103#103#101#114#34#32#115+
-  #105#122#101#32#49#52#56#32#98#121#116#101#115#32#98#105#110#98#108#111#99+
-  #107#32#54#32#123#10#32#32#47#47#88#32#105#115#32#34#120#34#32#116#121#112+
-  #101#32#105#110#116#32#111#102#102#115#101#116#32#48#59#10#32#32#47#47#89#32+
-  #105#115#32#34#121#34#32#116#121#112#101#32#105#110#116#32#111#102#102#115+
-  #101#116#32#52#59#10#32#32#80#111#115#32#105#115#32#34#112#111#115#105#116+
-  #105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102#115+
-  #101#116#32#48#32#97#115#32#120#121#59#10#32#32#47#47#87#105#100#116#104#32+
-  #105#115#32#34#119#105#100#116#104#34#32#116#121#112#101#32#117#115#104#111+
-  #114#116#32#111#102#102#115#101#116#32#56#59#10#32#32#47#47#72#101#105#103+
-  #104#116#32#105#115#32#34#104#101#105#103#104#116#34#32#116#121#112#101#32+
-  #117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#48#59#10#32#32#83+
-  #105#122#101#32#105#115#32#34#115#105#122#101#34#32#116#121#112#101#32#115+
-  #105#122#101#32#111#102#102#115#101#116#32#56#32#97#115#32#119#104#59#10#32+
-  #32#69#110#97#98#108#101#100#32#105#115#32#34#101#110#97#98#108#101#100#34+
-  #32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#49#50#32+
-  #100#101#102#97#117#108#116#32#116#114#117#101#32#111#109#105#116#100#101+
-  #102#97#117#108#116#59#10#32#32#84#101#120#116#117#114#101#80#97#110#101#108+
-  #32#105#115#32#34#116#101#120#116#117#114#101#112#97#110#101#108#34#32#116+
-  #121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#51#32#112#97+
-  #110#101#108#32#100#101#102#97#117#108#116#32#110#117#108#108#32#111#109#105+
-  #116#100#101#102#97#117#108#116#59#10#32#32#84#114#105#103#103#101#114#84+
-  #121#112#101#32#105#115#32#34#116#121#112#101#34#32#116#121#112#101#32#117+
-  #98#121#116#101#32#111#102#102#115#101#116#32#49#55#32#101#110#117#109#32#84+
-  #114#105#103#103#101#114#84#121#112#101#59#10#32#32#65#99#116#105#118#97#116+
-  #101#84#121#112#101#32#105#115#32#34#97#99#116#105#118#97#116#101#116#121+
-  #112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
-  #116#32#49#56#32#98#105#116#115#101#116#32#65#99#116#105#118#97#116#101#84+
-  #121#112#101#59#10#32#32#75#101#121#115#32#105#115#32#34#107#101#121#115#34+
-  #32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49+
-  #57#32#98#105#116#115#101#116#32#75#101#121#32#100#101#102#97#117#108#116#32+
-  #75#69#89#95#78#79#78#69#32#111#109#105#116#100#101#102#97#117#108#116#59#10+
-  #32#32#47#47#87#65#82#78#73#78#71#58#32#34#116#114#105#103#100#97#116#97#34+
-  #32#77#85#83#84#32#98#101#32#100#101#102#105#110#101#100#32#98#101#102#111+
-  #114#101#32#34#116#121#112#101#34#44#32#97#110#100#32#34#116#121#112#101#34+
-  #32#77#85#83#84#32#98#101#32#110#97#109#101#100#32#34#116#121#112#101#34#32+
-  #40#102#111#114#32#110#111#119#44#32#99#97#110#32#98#101#32#99#104#97#110+
-  #103#101#100#32#108#97#116#101#114#41#10#32#32#68#65#84#65#32#105#115#32#34+
-  #116#114#105#103#103#101#114#100#97#116#97#34#32#116#121#112#101#32#116#114+
-  #105#103#100#97#116#97#91#49#50#56#93#32#111#102#102#115#101#116#32#50#48#59+
-  #32#47#47#32#116#104#101#32#111#110#108#121#32#115#112#101#99#105#97#108#32+
-  #110#101#115#116#101#100#32#115#116#114#117#99#116#117#114#101#10#32#32#47+
-  #47#32#110#111#116#32#105#110#32#98#105#110#97#114#121#10#32#32#47#47#73#100+
-  #32#105#115#32#34#105#100#34#32#116#121#112#101#32#115#116#114#105#110#103+
-  #32#100#101#102#97#117#108#116#32#34#34#32#111#109#105#116#100#101#102#97+
-  #117#108#116#59#10#32#32#47#47#32#105#110#116#101#114#110#97#108#115#10#32+
-  #32#84#114#105#103#73#100#120#32#105#115#32#34#116#114#105#103#105#100#120+
-  #34#32#116#121#112#101#32#117#105#110#116#32#105#110#116#101#114#110#97#108+
-  #59#10#125#10#10#10#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
-  #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
+  #108#59#10#125#10#10#84#65#114#101#97#82#101#99#95#49#32#105#115#32#34#97+
+  #114#101#97#34#32#115#105#122#101#32#49#48#32#98#121#116#101#115#32#98#105+
+  #110#98#108#111#99#107#32#52#32#123#10#32#32#47#47#88#32#105#115#32#34#120+
+  #34#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#48#59#10+
+  #32#32#47#47#89#32#105#115#32#34#121#34#32#116#121#112#101#32#105#110#116#32+
+  #111#102#102#115#101#116#32#52#59#10#32#32#80#111#115#32#105#115#32#34#112+
+  #111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32+
+  #111#102#102#115#101#116#32#48#32#97#115#32#120#121#59#10#32#32#65#114#101+
+  #97#84#121#112#101#32#105#115#32#34#116#121#112#101#34#32#116#121#112#101#32+
+  #117#98#121#116#101#32#111#102#102#115#101#116#32#56#32#101#110#117#109#32+
+  #65#114#101#97#84#121#112#101#59#10#32#32#68#105#114#101#99#116#105#111#110+
+  #32#105#115#32#34#100#105#114#101#99#116#105#111#110#34#32#116#121#112#101+
+  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#57#32#101#110#117#109+
+  #32#68#105#114#84#121#112#101#32#100#101#102#97#117#108#116#32#68#73#82#95+
+  #76#69#70#84#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#47#47+
+  #32#110#111#116#32#105#110#32#98#105#110#97#114#121#10#32#32#47#47#73#100#32+
+  #105#115#32#34#105#100#34#32#116#121#112#101#32#115#116#114#105#110#103#32+
+  #100#101#102#97#117#108#116#32#34#34#32#111#109#105#116#100#101#102#97#117+
+  #108#116#59#10#32#32#47#47#32#105#110#116#101#114#110#97#108#115#10#32#32#65+
+  #114#101#97#73#100#120#32#105#115#32#34#97#114#101#97#105#100#120#34#32#116+
+  #121#112#101#32#117#105#110#116#32#105#110#116#101#114#110#97#108#59#10#125+
+  #10#10#84#84#114#105#103#103#101#114#82#101#99#95#49#32#105#115#32#34#116+
+  #114#105#103#103#101#114#34#32#115#105#122#101#32#49#52#56#32#98#121#116#101+
+  #115#32#98#105#110#98#108#111#99#107#32#54#32#123#10#32#32#47#47#88#32#105+
+  #115#32#34#120#34#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101+
+  #116#32#48#59#10#32#32#47#47#89#32#105#115#32#34#121#34#32#116#121#112#101+
+  #32#105#110#116#32#111#102#102#115#101#116#32#52#59#10#32#32#80#111#115#32+
+  #105#115#32#34#112#111#115#105#116#105#111#110#34#32#116#121#112#101#32#112+
+  #111#105#110#116#32#111#102#102#115#101#116#32#48#32#97#115#32#120#121#59#10+
+  #32#32#47#47#87#105#100#116#104#32#105#115#32#34#119#105#100#116#104#34#32+
+  #116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#56+
+  #59#10#32#32#47#47#72#101#105#103#104#116#32#105#115#32#34#104#101#105#103+
+  #104#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115+
+  #101#116#32#49#48#59#10#32#32#83#105#122#101#32#105#115#32#34#115#105#122+
+  #101#34#32#116#121#112#101#32#115#105#122#101#32#111#102#102#115#101#116#32+
+  #56#32#97#115#32#119#104#59#10#32#32#69#110#97#98#108#101#100#32#105#115#32+
+  #34#101#110#97#98#108#101#100#34#32#116#121#112#101#32#98#111#111#108#32#111+
+  #102#102#115#101#116#32#49#50#32#100#101#102#97#117#108#116#32#116#114#117+
+  #101#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#84#101#120+
+  #116#117#114#101#80#97#110#101#108#32#105#115#32#34#116#101#120#116#117#114+
+  #101#112#97#110#101#108#34#32#116#121#112#101#32#105#110#116#32#111#102#102+
+  #115#101#116#32#49#51#32#112#97#110#101#108#32#100#101#102#97#117#108#116#32+
+  #110#117#108#108#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32+
+  #84#114#105#103#103#101#114#84#121#112#101#32#105#115#32#34#116#121#112#101+
+  #34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32+
+  #49#55#32#101#110#117#109#32#84#114#105#103#103#101#114#84#121#112#101#59#10+
+  #32#32#65#99#116#105#118#97#116#101#84#121#112#101#32#105#115#32#34#97#99+
+  #116#105#118#97#116#101#116#121#112#101#34#32#116#121#112#101#32#117#98#121+
+  #116#101#32#111#102#102#115#101#116#32#49#56#32#98#105#116#115#101#116#32#65+
+  #99#116#105#118#97#116#101#84#121#112#101#59#10#32#32#75#101#121#115#32#105+
+  #115#32#34#107#101#121#115#34#32#116#121#112#101#32#117#98#121#116#101#32+
+  #111#102#102#115#101#116#32#49#57#32#98#105#116#115#101#116#32#75#101#121#32+
+  #100#101#102#97#117#108#116#32#75#69#89#95#78#79#78#69#32#111#109#105#116+
+  #100#101#102#97#117#108#116#59#10#32#32#47#47#87#65#82#78#73#78#71#58#32#34+
+  #116#114#105#103#100#97#116#97#34#32#77#85#83#84#32#98#101#32#100#101#102+
+  #105#110#101#100#32#98#101#102#111#114#101#32#34#116#121#112#101#34#44#32#97+
+  #110#100#32#34#116#121#112#101#34#32#77#85#83#84#32#98#101#32#110#97#109#101+
+  #100#32#34#116#121#112#101#34#32#40#102#111#114#32#110#111#119#44#32#99#97+
+  #110#32#98#101#32#99#104#97#110#103#101#100#32#108#97#116#101#114#41#10#32+
+  #32#68#65#84#65#32#105#115#32#34#116#114#105#103#103#101#114#100#97#116#97+
+  #34#32#116#121#112#101#32#116#114#105#103#100#97#116#97#91#49#50#56#93#32+
+  #111#102#102#115#101#116#32#50#48#59#32#47#47#32#116#104#101#32#111#110#108+
+  #121#32#115#112#101#99#105#97#108#32#110#101#115#116#101#100#32#115#116#114+
+  #117#99#116#117#114#101#10#32#32#47#47#32#110#111#116#32#105#110#32#98#105+
+  #110#97#114#121#10#32#32#47#47#73#100#32#105#115#32#34#105#100#34#32#116#121+
+  #112#101#32#115#116#114#105#110#103#32#100#101#102#97#117#108#116#32#34#34+
+  #32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#47#47#32#105#110+
+  #116#101#114#110#97#108#115#10#32#32#84#114#105#103#73#100#120#32#105#115#32+
+  #34#116#114#105#103#105#100#120#34#32#116#121#112#101#32#117#105#110#116#32+
+  #105#110#116#101#114#110#97#108#59#10#125#10#10#10#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
-  #47#47#47#47#47#47#47#47#47#47#47#10#47#42#10#101#110#117#109#32#123#10#32+
-  #32#84#69#88#84#85#82#69#95#78#65#77#69#95#87#65#84#69#82#32#61#32#39#95#119+
-  #97#116#101#114#95#48#39#44#10#32#32#84#69#88#84#85#82#69#95#78#65#77#69#95+
-  #65#67#73#68#49#32#61#32#39#95#119#97#116#101#114#95#49#39#44#10#32#32#84#69+
-  #88#84#85#82#69#95#78#65#77#69#95#65#67#73#68#50#32#61#32#39#95#119#97#116+
-  #101#114#95#50#39#44#10#125#10#42#47#10#10#101#110#117#109#32#84#101#120#116+
-  #117#114#101#83#112#101#99#105#97#108#32#123#10#32#32#84#69#88#84#85#82#69+
-  #95#83#80#69#67#73#65#76#95#87#65#84#69#82#32#61#32#45#49#44#10#32#32#84#69+
-  #88#84#85#82#69#95#83#80#69#67#73#65#76#95#65#67#73#68#49#32#61#32#45#50#44+
-  #10#32#32#84#69#88#84#85#82#69#95#83#80#69#67#73#65#76#95#65#67#73#68#50#32+
-  #61#32#45#51#44#10#32#32#84#69#88#84#85#82#69#95#78#79#78#69#32#61#32#45#52+
-  #44#10#125#10#10#47#47#32#100#105#114#101#99#116#105#111#110#115#10#101#110+
-  #117#109#32#68#105#114#84#121#112#101#32#123#10#32#32#68#73#82#95#76#69#70+
-  #84#44#32#47#47#32#48#10#32#32#68#73#82#95#82#73#71#72#84#44#32#47#47#32#49+
-  #10#32#32#68#73#82#95#83#79#77#69#84#72#73#78#71#50#44#32#47#47#32#50#10#125+
-  #10#10#47#47#32#116#114#105#103#103#101#114#115#10#101#110#117#109#32#84#114+
-  #105#103#103#101#114#84#121#112#101#32#123#10#32#32#84#82#73#71#71#69#82#95+
-  #78#79#78#69#44#32#47#47#32#48#10#32#32#84#82#73#71#71#69#82#95#69#88#73#84+
-  #44#32#47#47#32#49#10#32#32#84#82#73#71#71#69#82#95#84#69#76#69#80#79#82#84+
-  #44#32#47#47#32#50#10#32#32#84#82#73#71#71#69#82#95#79#80#69#78#68#79#79#82+
-  #44#32#47#47#32#51#10#32#32#84#82#73#71#71#69#82#95#67#76#79#83#69#68#79#79+
-  #82#44#32#47#47#32#52#10#32#32#84#82#73#71#71#69#82#95#68#79#79#82#44#32#47+
-  #47#32#53#10#32#32#84#82#73#71#71#69#82#95#68#79#79#82#53#44#32#47#47#32#54+
-  #10#32#32#84#82#73#71#71#69#82#95#67#76#79#83#69#84#82#65#80#44#32#47#47#32+
-  #55#10#32#32#84#82#73#71#71#69#82#95#84#82#65#80#44#32#47#47#32#56#10#32#32+
-  #84#82#73#71#71#69#82#95#80#82#69#83#83#44#32#47#47#32#57#10#32#32#84#82#73+
-  #71#71#69#82#95#83#69#67#82#69#84#44#32#47#47#32#49#48#10#32#32#84#82#73#71+
-  #71#69#82#95#76#73#70#84#85#80#44#32#47#47#32#49#49#10#32#32#84#82#73#71#71+
-  #69#82#95#76#73#70#84#68#79#87#78#44#32#47#47#32#49#50#10#32#32#84#82#73#71+
-  #71#69#82#95#76#73#70#84#44#32#47#47#32#49#51#10#32#32#84#82#73#71#71#69#82+
-  #95#84#69#88#84#85#82#69#44#32#47#47#32#49#52#10#32#32#84#82#73#71#71#69#82+
-  #95#79#78#44#32#47#47#32#49#53#10#32#32#84#82#73#71#71#69#82#95#79#70#70#44+
-  #32#47#47#32#49#54#10#32#32#84#82#73#71#71#69#82#95#79#78#79#70#70#44#32#47+
-  #47#32#49#55#10#32#32#84#82#73#71#71#69#82#95#83#79#85#78#68#44#32#47#47#32+
-  #49#56#10#32#32#84#82#73#71#71#69#82#95#83#80#65#87#78#77#79#78#83#84#69#82+
-  #44#32#47#47#32#49#57#10#32#32#84#82#73#71#71#69#82#95#83#80#65#87#78#73#84+
-  #69#77#44#32#47#47#32#50#48#10#32#32#84#82#73#71#71#69#82#95#77#85#83#73#67+
-  #44#32#47#47#32#50#49#10#32#32#84#82#73#71#71#69#82#95#80#85#83#72#44#32#47+
-  #47#32#50#50#10#32#32#84#82#73#71#71#69#82#95#83#67#79#82#69#44#32#47#47#32+
-  #50#51#10#32#32#84#82#73#71#71#69#82#95#77#69#83#83#65#71#69#44#32#47#47#32+
-  #50#52#10#32#32#84#82#73#71#71#69#82#95#68#65#77#65#71#69#44#32#47#47#32#50+
-  #53#10#32#32#84#82#73#71#71#69#82#95#72#69#65#76#84#72#44#32#47#47#32#50#54+
-  #10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#44#32#47#47#32#50#55#10#32#32+
-  #84#82#73#71#71#69#82#95#69#70#70#69#67#84#44#32#47#47#32#50#56#10#32#32#84+
-  #82#73#71#71#69#82#95#83#67#82#73#80#84#44#32#47#47#32#50#57#10#32#32#47#47+
-  #10#32#32#84#82#73#71#71#69#82#95#77#65#88#32#61#32#77#65#88#44#10#125#10#10+
-  #47#47#32#34#97#115#32#88#88#88#34#32#109#101#97#110#115#32#34#103#101#110+
-  #101#114#97#116#101#32#116#104#105#115#32#105#100#101#110#116#105#102#105+
-  #101#114#32#102#111#114#32#112#97#115#99#97#108#32#115#111#117#114#99#101+
-  #115#10#98#105#116#115#101#116#32#80#97#110#101#108#84#121#112#101#32#123#10+
-  #32#32#80#65#78#69#76#95#78#79#78#69#32#61#32#48#44#32#47#47#32#48#10#32#32+
-  #80#65#78#69#76#95#87#65#76#76#44#32#47#47#32#49#10#32#32#80#65#78#69#76#95+
-  #66#65#67#75#44#32#47#47#32#50#10#32#32#80#65#78#69#76#95#70#79#82#69#44#32+
-  #47#47#32#52#10#32#32#80#65#78#69#76#95#87#65#84#69#82#44#32#47#47#32#56#10+
-  #32#32#80#65#78#69#76#95#65#67#73#68#49#44#32#47#47#32#49#54#10#32#32#80#65+
-  #78#69#76#95#65#67#73#68#50#44#32#47#47#32#51#50#10#32#32#80#65#78#69#76#95+
-  #83#84#69#80#44#32#47#47#32#54#52#10#32#32#80#65#78#69#76#95#76#73#70#84#85+
-  #80#44#32#47#47#32#49#50#56#10#32#32#80#65#78#69#76#95#76#73#70#84#68#79#87+
-  #78#44#32#47#47#32#50#53#54#10#32#32#80#65#78#69#76#95#79#80#69#78#68#79#79+
-  #82#44#32#47#47#32#53#49#50#10#32#32#80#65#78#69#76#95#67#76#79#83#69#68#79+
-  #79#82#44#32#47#47#32#49#48#50#52#10#32#32#80#65#78#69#76#95#66#76#79#67#75+
-  #77#79#78#44#32#47#47#32#50#48#52#56#10#32#32#80#65#78#69#76#95#76#73#70#84+
-  #76#69#70#84#44#32#47#47#32#52#48#57#54#10#32#32#80#65#78#69#76#95#76#73#70+
-  #84#82#73#71#72#84#44#32#47#47#32#56#49#57#50#10#125#10#10#98#105#116#115+
-  #101#116#32#80#97#110#101#108#70#108#97#103#32#123#10#32#32#80#65#78#69#76+
-  #95#70#76#65#71#95#78#79#78#69#32#61#32#48#44#32#47#47#32#48#10#32#32#80#65+
-  #78#69#76#95#70#76#65#71#95#66#76#69#78#68#73#78#71#44#32#47#47#32#49#10#32+
-  #32#80#65#78#69#76#95#70#76#65#71#95#72#73#68#69#44#32#47#47#32#50#10#32#32+
-  #80#65#78#69#76#95#70#76#65#71#95#87#65#84#69#82#84#69#88#84#85#82#69#83#44+
-  #32#47#47#32#52#10#125#10#10#101#110#117#109#32#69#102#102#101#99#116#65#99+
-  #116#105#111#110#32#123#10#32#32#69#70#70#69#67#84#95#78#79#78#69#44#32#47+
-  #47#32#48#10#32#32#69#70#70#69#67#84#95#84#69#76#69#80#79#82#84#44#32#47#47+
-  #32#49#10#32#32#69#70#70#69#67#84#95#82#69#83#80#65#87#78#44#32#47#47#32#50+
-  #10#32#32#69#70#70#69#67#84#95#70#73#82#69#44#32#47#47#32#51#10#125#10#10+
-  #101#110#117#109#32#73#116#101#109#32#123#10#32#32#73#84#69#77#95#78#79#78+
-  #69#44#32#47#47#32#48#10#32#32#73#84#69#77#95#77#69#68#75#73#84#95#83#77#65+
-  #76#76#44#32#47#47#32#49#10#32#32#73#84#69#77#95#77#69#68#75#73#84#95#76#65+
-  #82#71#69#44#32#47#47#32#50#10#32#32#73#84#69#77#95#77#69#68#75#73#84#95#66+
-  #76#65#67#75#44#32#47#47#32#51#10#32#32#73#84#69#77#95#65#82#77#79#82#95#71+
-  #82#69#69#78#44#32#47#47#32#52#10#32#32#73#84#69#77#95#65#82#77#79#82#95#66+
-  #76#85#69#44#32#47#47#32#53#10#32#32#73#84#69#77#95#83#80#72#69#82#69#95#66+
-  #76#85#69#44#32#47#47#32#54#10#32#32#73#84#69#77#95#83#80#72#69#82#69#95#87+
-  #72#73#84#69#44#32#47#47#32#55#10#32#32#73#84#69#77#95#83#85#73#84#44#32#47+
-  #47#32#56#10#32#32#73#84#69#77#95#79#88#89#71#69#78#44#32#47#47#32#57#10#32+
-  #32#73#84#69#77#95#73#78#86#85#76#44#32#47#47#32#49#48#10#32#32#73#84#69#77+
-  #95#87#69#65#80#79#78#95#83#65#87#44#32#47#47#32#49#49#10#32#32#73#84#69#77+
-  #95#87#69#65#80#79#78#95#83#72#79#84#71#85#78#49#44#32#47#47#32#49#50#10#32+
-  #32#73#84#69#77#95#87#69#65#80#79#78#95#83#72#79#84#71#85#78#50#44#32#47#47+
-  #32#49#51#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#67#72#65#73#78#71#85+
-  #78#44#32#47#47#32#49#52#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#82#79+
-  #67#75#69#84#76#65#85#78#67#72#69#82#44#32#47#47#32#49#53#10#32#32#73#84#69+
-  #77#95#87#69#65#80#79#78#95#80#76#65#83#77#65#44#32#47#47#32#49#54#10#32#32+
-  #73#84#69#77#95#87#69#65#80#79#78#95#66#70#71#44#32#47#47#32#49#55#10#32#32+
-  #73#84#69#77#95#87#69#65#80#79#78#95#83#85#80#69#82#80#85#76#69#77#69#84#44+
-  #32#47#47#32#49#56#10#32#32#73#84#69#77#95#65#77#77#79#95#66#85#76#76#69#84+
-  #83#44#32#47#47#32#49#57#10#32#32#73#84#69#77#95#65#77#77#79#95#66#85#76#76+
-  #69#84#83#95#66#79#88#44#32#47#47#32#50#48#10#32#32#73#84#69#77#95#65#77#77+
-  #79#95#83#72#69#76#76#83#44#32#47#47#32#50#49#10#32#32#73#84#69#77#95#65#77+
-  #77#79#95#83#72#69#76#76#83#95#66#79#88#44#32#47#47#32#50#50#10#32#32#73#84+
-  #69#77#95#65#77#77#79#95#82#79#67#75#69#84#44#32#47#47#32#50#51#10#32#32#73+
-  #84#69#77#95#65#77#77#79#95#82#79#67#75#69#84#95#66#79#88#44#32#47#47#32#50+
-  #52#10#32#32#73#84#69#77#95#65#77#77#79#95#67#69#76#76#44#32#47#47#32#50#53+
-  #10#32#32#73#84#69#77#95#65#77#77#79#95#67#69#76#76#95#66#73#71#44#32#47#47+
-  #32#50#54#10#32#32#73#84#69#77#95#65#77#77#79#95#66#65#67#75#80#65#67#75#44+
-  #32#47#47#32#50#55#10#32#32#73#84#69#77#95#75#69#89#95#82#69#68#44#32#47#47+
-  #32#50#56#10#32#32#73#84#69#77#95#75#69#89#95#71#82#69#69#78#44#32#47#47#32+
-  #50#57#10#32#32#73#84#69#77#95#75#69#89#95#66#76#85#69#44#32#47#47#32#51#48+
-  #10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#75#65#83#84#69#84#44#32#47#47+
-  #32#51#49#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#80#73#83#84#79#76#44+
-  #32#47#47#32#51#50#10#32#32#73#84#69#77#95#66#79#84#84#76#69#44#32#47#47#32+
-  #51#51#10#32#32#73#84#69#77#95#72#69#76#77#69#84#44#32#47#47#32#51#52#10#32+
-  #32#73#84#69#77#95#74#69#84#80#65#67#75#44#32#47#47#32#51#53#10#32#32#73#84+
-  #69#77#95#73#78#86#73#83#44#32#47#47#32#51#54#10#32#32#73#84#69#77#95#87#69+
-  #65#80#79#78#95#70#76#65#77#69#84#72#82#79#87#69#82#44#32#47#47#32#51#55#10+
-  #32#32#73#84#69#77#95#65#77#77#79#95#70#85#69#76#67#65#78#44#32#47#47#32#51+
-  #56#10#32#32#47#47#10#32#32#73#84#69#77#95#77#65#88#32#61#32#77#65#88#44#32+
-  #47#47#32#115#116#111#114#101#32#116#104#101#32#108#97#115#116#32#105#116+
-  #101#109#39#115#32#105#100#32#105#110#32#104#101#114#101#32#117#115#101#32+
-  #116#104#105#115#32#105#110#32#102#111#114#32#108#111#111#112#115#10#125#10+
-  #10#98#105#116#115#101#116#32#73#116#101#109#79#112#116#105#111#110#32#123+
-  #10#32#32#73#84#69#77#95#79#80#84#73#79#78#95#78#79#78#69#32#61#32#48#44#32+
-  #47#47#32#48#10#32#32#73#84#69#77#95#79#80#84#73#79#78#95#79#78#76#89#68#77+
-  #44#32#47#47#32#49#10#32#32#73#84#69#77#95#79#80#84#73#79#78#95#70#65#76#76+
-  #44#32#47#47#32#50#10#125#10#10#101#110#117#109#32#65#114#101#97#84#121#112+
-  #101#32#123#10#32#32#65#82#69#65#95#78#79#78#69#44#32#47#47#32#48#10#32#32+
-  #65#82#69#65#95#80#76#65#89#69#82#80#79#73#78#84#49#44#32#47#47#32#49#10#32+
-  #32#65#82#69#65#95#80#76#65#89#69#82#80#79#73#78#84#50#44#32#47#47#32#50#10+
-  #32#32#65#82#69#65#95#68#77#80#79#73#78#84#44#32#47#47#32#51#10#32#32#65#82+
-  #69#65#95#82#69#68#70#76#65#71#44#32#47#47#32#52#10#32#32#65#82#69#65#95#66+
-  #76#85#69#70#76#65#71#44#32#47#47#32#53#10#32#32#65#82#69#65#95#68#79#77#70+
-  #76#65#71#44#32#47#47#32#54#10#32#32#65#82#69#65#95#82#69#68#84#69#65#77#80+
-  #79#73#78#84#44#32#47#47#32#55#10#32#32#65#82#69#65#95#66#76#85#69#84#69#65+
-  #77#80#79#73#78#84#44#32#47#47#32#56#10#125#10#10#101#110#117#109#32#77#111+
-  #110#115#116#101#114#32#123#10#32#32#77#79#78#83#84#69#82#95#78#79#78#69#44+
-  #32#47#47#32#48#10#32#32#77#79#78#83#84#69#82#95#68#69#77#79#78#44#32#47#47+
-  #32#49#10#32#32#77#79#78#83#84#69#82#95#73#77#80#44#32#47#47#32#50#10#32#32+
-  #77#79#78#83#84#69#82#95#90#79#77#66#89#44#32#47#47#32#51#10#32#32#77#79#78+
-  #83#84#69#82#95#83#69#82#71#44#32#47#47#32#52#10#32#32#77#79#78#83#84#69#82+
-  #95#67#89#66#69#82#44#32#47#47#32#53#10#32#32#77#79#78#83#84#69#82#95#67#71+
-  #85#78#44#32#47#47#32#54#10#32#32#77#79#78#83#84#69#82#95#66#65#82#79#78#44+
-  #32#47#47#32#55#10#32#32#77#79#78#83#84#69#82#95#75#78#73#71#72#84#44#32#47+
-  #47#32#56#10#32#32#77#79#78#83#84#69#82#95#67#65#67#79#44#32#47#47#32#57#10+
-  #32#32#77#79#78#83#84#69#82#95#83#79#85#76#44#32#47#47#32#49#48#10#32#32#77+
-  #79#78#83#84#69#82#95#80#65#73#78#44#32#47#47#32#49#49#10#32#32#77#79#78#83+
-  #84#69#82#95#83#80#73#68#69#82#44#32#47#47#32#49#50#10#32#32#77#79#78#83#84+
-  #69#82#95#66#83#80#44#32#47#47#32#49#51#10#32#32#77#79#78#83#84#69#82#95#77+
-  #65#78#67#85#66#44#32#47#47#32#49#52#10#32#32#77#79#78#83#84#69#82#95#83#75+
-  #69#76#44#32#47#47#32#49#53#10#32#32#77#79#78#83#84#69#82#95#86#73#76#69#44+
-  #32#47#47#32#49#54#10#32#32#77#79#78#83#84#69#82#95#70#73#83#72#44#32#47#47+
-  #32#49#55#10#32#32#77#79#78#83#84#69#82#95#66#65#82#82#69#76#44#32#47#47#32+
-  #49#56#10#32#32#77#79#78#83#84#69#82#95#82#79#66#79#44#32#47#47#32#49#57#10+
-  #32#32#77#79#78#83#84#69#82#95#77#65#78#44#32#47#47#32#50#48#10#125#10#10+
-  #101#110#117#109#32#84#114#105#103#103#101#114#83#104#111#116#32#123#10#32+
-  #32#84#82#73#71#71#69#82#95#83#72#79#84#95#80#73#83#84#79#76#44#32#47#47#32+
-  #48#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#66#85#76#76#69#84#44#32+
-  #47#47#32#49#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#83#72#79#84#71+
-  #85#78#44#32#47#47#32#50#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#83+
-  #83#71#44#32#47#47#32#51#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#73+
-  #77#80#44#32#47#47#32#52#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#80+
-  #76#65#83#77#65#44#32#47#47#32#53#10#32#32#84#82#73#71#71#69#82#95#83#72#79+
-  #84#95#83#80#73#68#69#82#44#32#47#47#32#54#10#32#32#84#82#73#71#71#69#82#95+
-  #83#72#79#84#95#67#65#67#79#44#32#47#47#32#55#10#32#32#84#82#73#71#71#69#82+
-  #95#83#72#79#84#95#66#65#82#79#78#44#32#47#47#32#56#10#32#32#84#82#73#71#71+
-  #69#82#95#83#72#79#84#95#77#65#78#67#85#66#44#32#47#47#32#57#10#32#32#84#82+
-  #73#71#71#69#82#95#83#72#79#84#95#82#69#86#44#32#47#47#32#49#48#10#32#32#84+
-  #82#73#71#71#69#82#95#83#72#79#84#95#82#79#67#75#69#84#44#32#47#47#32#49#49+
-  #10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#66#70#71#44#32#47#47#32#49+
-  #50#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#69#88#80#76#44#32#47#47+
-  #32#49#51#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#66#70#71#69#88#80+
-  #76#44#32#47#47#32#49#52#10#32#32#47#47#10#32#32#84#82#73#71#71#69#82#95#83+
-  #72#79#84#95#77#65#88#32#61#32#77#65#88#44#10#125#10#10#101#110#117#109#32+
-  #84#114#105#103#103#101#114#83#104#111#116#84#97#114#103#101#116#32#123#10+
-  #32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#78#79#78+
-  #69#44#32#47#47#32#48#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65+
-  #82#71#69#84#95#77#79#78#44#32#47#47#32#49#10#32#32#84#82#73#71#71#69#82#95+
-  #83#72#79#84#95#84#65#82#71#69#84#95#80#76#82#44#32#47#47#32#50#10#32#32#84+
-  #82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#82#69#68#44#32#47+
-  #47#32#51#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84+
-  #95#66#76#85#69#44#32#47#47#32#52#10#32#32#84#82#73#71#71#69#82#95#83#72#79+
-  #84#95#84#65#82#71#69#84#95#77#79#78#80#76#82#44#32#47#47#32#53#10#32#32#84+
-  #82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#80#76#82#77#79#78+
-  #44#32#47#47#32#54#10#125#10#10#101#110#117#109#32#84#114#105#103#103#101+
-  #114#83#104#111#116#65#105#109#32#123#10#32#32#84#82#73#71#71#69#82#95#83#72+
-  #79#84#95#65#73#77#95#68#69#70#65#85#76#84#44#32#47#47#32#48#10#32#32#84#82+
-  #73#71#71#69#82#95#83#72#79#84#95#65#73#77#95#65#76#76#77#65#80#44#32#47#47+
-  #32#49#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#65#73#77#95#84#82#65+
-  #67#69#44#32#47#47#32#50#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#65+
-  #73#77#95#84#82#65#67#69#65#76#76#44#32#47#47#32#51#10#125#10#10#101#110#117+
-  #109#32#84#114#105#103#103#101#114#69#102#102#101#99#116#32#123#10#32#32#84+
-  #82#73#71#71#69#82#95#69#70#70#69#67#84#95#80#65#82#84#73#67#76#69#44#32#47+
-  #47#32#48#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#65#78#73#77+
-  #65#84#73#79#78#44#32#47#47#32#49#10#125#10#10#101#110#117#109#32#84#114#105+
-  #103#103#101#114#69#102#102#101#99#116#84#121#112#101#32#123#10#32#32#84#82+
-  #73#71#71#69#82#95#69#70#70#69#67#84#95#83#76#73#81#85#73#68#44#32#47#47#32+
-  #48#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#76#76#73#81#85#73+
-  #68#44#32#47#47#32#49#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95+
-  #68#76#73#81#85#73#68#44#32#47#47#32#50#10#32#32#84#82#73#71#71#69#82#95#69+
-  #70#70#69#67#84#95#66#76#79#79#68#44#32#47#47#32#51#10#32#32#84#82#73#71#71+
-  #69#82#95#69#70#70#69#67#84#95#83#80#65#82#75#44#32#47#47#32#52#10#32#32#84+
-  #82#73#71#71#69#82#95#69#70#70#69#67#84#95#66#85#66#66#76#69#44#32#47#47#32+
-  #53#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#77#65#88#32#61#32+
-  #77#65#88#44#10#125#10#10#101#110#117#109#32#84#114#105#103#103#101#114#69+
-  #102#102#101#99#116#80#111#115#32#123#10#32#32#84#82#73#71#71#69#82#95#69#70+
-  #70#69#67#84#95#80#79#83#95#67#69#78#84#69#82#44#32#47#47#32#48#10#32#32#84+
-  #82#73#71#71#69#82#95#69#70#70#69#67#84#95#80#79#83#95#65#82#69#65#44#32#47+
-  #47#32#49#10#125#10#10#98#105#116#115#101#116#32#65#99#116#105#118#97#116+
-  #101#84#121#112#101#32#123#10#32#32#65#67#84#73#86#65#84#69#95#78#79#78#69+
-  #32#61#32#48#44#32#47#47#32#48#10#32#32#65#67#84#73#86#65#84#69#95#80#76#65+
-  #89#69#82#67#79#76#76#73#68#69#44#32#47#47#32#49#10#32#32#65#67#84#73#86#65+
-  #84#69#95#77#79#78#83#84#69#82#67#79#76#76#73#68#69#44#32#47#47#32#50#10#32+
-  #32#65#67#84#73#86#65#84#69#95#80#76#65#89#69#82#80#82#69#83#83#44#32#47#47+
-  #32#52#10#32#32#65#67#84#73#86#65#84#69#95#77#79#78#83#84#69#82#80#82#69#83+
-  #83#44#32#47#47#32#56#10#32#32#65#67#84#73#86#65#84#69#95#83#72#79#84#44#32+
-  #47#47#32#49#54#10#32#32#65#67#84#73#86#65#84#69#95#78#79#77#79#78#83#84#69+
-  #82#44#32#47#47#32#51#50#10#32#32#65#67#84#73#86#65#84#69#95#67#85#83#84#79+
-  #77#32#61#32#50#53#53#44#32#47#47#32#110#111#116#101#32#116#104#97#116#32#34+
-  #100#105#114#101#99#116#32#97#115#115#105#103#110#34#32#102#105#101#108#100+
-  #32#100#111#101#115#110#39#116#32#97#102#102#101#99#116#32#98#105#116#32#99+
-  #111#117#110#116#101#114#10#125#10#10#98#105#116#115#101#116#32#75#101#121+
-  #32#123#10#32#32#75#69#89#95#78#79#78#69#32#61#32#48#44#32#47#47#32#48#10#32+
-  #32#75#69#89#95#82#69#68#44#32#47#47#32#49#10#32#32#75#69#89#95#71#82#69#69+
-  #78#44#32#47#47#32#50#10#32#32#75#69#89#95#66#76#85#69#44#32#47#47#32#52#10+
-  #32#32#75#69#89#95#82#69#68#84#69#65#77#44#32#47#47#32#56#10#32#32#75#69#89+
-  #95#66#76#85#69#84#69#65#77#44#32#47#47#32#49#54#10#125#10#10#10#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
+  #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#10#47#42+
+  #10#101#110#117#109#32#123#10#32#32#84#69#88#84#85#82#69#95#78#65#77#69#95+
+  #87#65#84#69#82#32#61#32#39#95#119#97#116#101#114#95#48#39#44#10#32#32#84#69+
+  #88#84#85#82#69#95#78#65#77#69#95#65#67#73#68#49#32#61#32#39#95#119#97#116+
+  #101#114#95#49#39#44#10#32#32#84#69#88#84#85#82#69#95#78#65#77#69#95#65#67+
+  #73#68#50#32#61#32#39#95#119#97#116#101#114#95#50#39#44#10#125#10#42#47#10+
+  #10#101#110#117#109#32#84#101#120#116#117#114#101#83#112#101#99#105#97#108+
+  #32#123#10#32#32#84#69#88#84#85#82#69#95#83#80#69#67#73#65#76#95#87#65#84#69+
+  #82#32#61#32#45#49#44#10#32#32#84#69#88#84#85#82#69#95#83#80#69#67#73#65#76+
+  #95#65#67#73#68#49#32#61#32#45#50#44#10#32#32#84#69#88#84#85#82#69#95#83#80+
+  #69#67#73#65#76#95#65#67#73#68#50#32#61#32#45#51#44#10#32#32#84#69#88#84#85+
+  #82#69#95#78#79#78#69#32#61#32#45#52#44#10#125#10#10#47#47#32#100#105#114+
+  #101#99#116#105#111#110#115#10#101#110#117#109#32#68#105#114#84#121#112#101+
+  #32#123#10#32#32#68#73#82#95#76#69#70#84#44#32#47#47#32#48#10#32#32#68#73#82+
+  #95#82#73#71#72#84#44#32#47#47#32#49#10#32#32#68#73#82#95#83#79#77#69#84#72+
+  #73#78#71#50#44#32#47#47#32#50#10#125#10#10#47#47#32#116#114#105#103#103#101+
+  #114#115#10#101#110#117#109#32#84#114#105#103#103#101#114#84#121#112#101#32+
+  #123#10#32#32#84#82#73#71#71#69#82#95#78#79#78#69#44#32#47#47#32#48#10#32#32+
+  #84#82#73#71#71#69#82#95#69#88#73#84#44#32#47#47#32#49#10#32#32#84#82#73#71+
+  #71#69#82#95#84#69#76#69#80#79#82#84#44#32#47#47#32#50#10#32#32#84#82#73#71+
+  #71#69#82#95#79#80#69#78#68#79#79#82#44#32#47#47#32#51#10#32#32#84#82#73#71+
+  #71#69#82#95#67#76#79#83#69#68#79#79#82#44#32#47#47#32#52#10#32#32#84#82#73+
+  #71#71#69#82#95#68#79#79#82#44#32#47#47#32#53#10#32#32#84#82#73#71#71#69#82+
+  #95#68#79#79#82#53#44#32#47#47#32#54#10#32#32#84#82#73#71#71#69#82#95#67#76+
+  #79#83#69#84#82#65#80#44#32#47#47#32#55#10#32#32#84#82#73#71#71#69#82#95#84+
+  #82#65#80#44#32#47#47#32#56#10#32#32#84#82#73#71#71#69#82#95#80#82#69#83#83+
+  #44#32#47#47#32#57#10#32#32#84#82#73#71#71#69#82#95#83#69#67#82#69#84#44#32+
+  #47#47#32#49#48#10#32#32#84#82#73#71#71#69#82#95#76#73#70#84#85#80#44#32#47+
+  #47#32#49#49#10#32#32#84#82#73#71#71#69#82#95#76#73#70#84#68#79#87#78#44#32+
+  #47#47#32#49#50#10#32#32#84#82#73#71#71#69#82#95#76#73#70#84#44#32#47#47#32+
+  #49#51#10#32#32#84#82#73#71#71#69#82#95#84#69#88#84#85#82#69#44#32#47#47#32+
+  #49#52#10#32#32#84#82#73#71#71#69#82#95#79#78#44#32#47#47#32#49#53#10#32#32+
+  #84#82#73#71#71#69#82#95#79#70#70#44#32#47#47#32#49#54#10#32#32#84#82#73#71+
+  #71#69#82#95#79#78#79#70#70#44#32#47#47#32#49#55#10#32#32#84#82#73#71#71#69+
+  #82#95#83#79#85#78#68#44#32#47#47#32#49#56#10#32#32#84#82#73#71#71#69#82#95+
+  #83#80#65#87#78#77#79#78#83#84#69#82#44#32#47#47#32#49#57#10#32#32#84#82#73+
+  #71#71#69#82#95#83#80#65#87#78#73#84#69#77#44#32#47#47#32#50#48#10#32#32#84+
+  #82#73#71#71#69#82#95#77#85#83#73#67#44#32#47#47#32#50#49#10#32#32#84#82#73+
+  #71#71#69#82#95#80#85#83#72#44#32#47#47#32#50#50#10#32#32#84#82#73#71#71#69+
+  #82#95#83#67#79#82#69#44#32#47#47#32#50#51#10#32#32#84#82#73#71#71#69#82#95+
+  #77#69#83#83#65#71#69#44#32#47#47#32#50#52#10#32#32#84#82#73#71#71#69#82#95+
+  #68#65#77#65#71#69#44#32#47#47#32#50#53#10#32#32#84#82#73#71#71#69#82#95#72+
+  #69#65#76#84#72#44#32#47#47#32#50#54#10#32#32#84#82#73#71#71#69#82#95#83#72+
+  #79#84#44#32#47#47#32#50#55#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67+
+  #84#44#32#47#47#32#50#56#10#32#32#84#82#73#71#71#69#82#95#83#67#82#73#80#84+
+  #44#32#47#47#32#50#57#10#32#32#47#47#10#32#32#84#82#73#71#71#69#82#95#77#65+
+  #88#32#61#32#77#65#88#44#10#125#10#10#47#47#32#34#97#115#32#88#88#88#34#32+
+  #109#101#97#110#115#32#34#103#101#110#101#114#97#116#101#32#116#104#105#115+
+  #32#105#100#101#110#116#105#102#105#101#114#32#102#111#114#32#112#97#115#99+
+  #97#108#32#115#111#117#114#99#101#115#10#98#105#116#115#101#116#32#80#97#110+
+  #101#108#84#121#112#101#32#123#10#32#32#80#65#78#69#76#95#78#79#78#69#32#61+
+  #32#48#44#32#47#47#32#48#10#32#32#80#65#78#69#76#95#87#65#76#76#44#32#47#47+
+  #32#49#10#32#32#80#65#78#69#76#95#66#65#67#75#44#32#47#47#32#50#10#32#32#80+
+  #65#78#69#76#95#70#79#82#69#44#32#47#47#32#52#10#32#32#80#65#78#69#76#95#87+
+  #65#84#69#82#44#32#47#47#32#56#10#32#32#80#65#78#69#76#95#65#67#73#68#49#44+
+  #32#47#47#32#49#54#10#32#32#80#65#78#69#76#95#65#67#73#68#50#44#32#47#47#32+
+  #51#50#10#32#32#80#65#78#69#76#95#83#84#69#80#44#32#47#47#32#54#52#10#32#32+
+  #80#65#78#69#76#95#76#73#70#84#85#80#44#32#47#47#32#49#50#56#10#32#32#80#65+
+  #78#69#76#95#76#73#70#84#68#79#87#78#44#32#47#47#32#50#53#54#10#32#32#80#65+
+  #78#69#76#95#79#80#69#78#68#79#79#82#44#32#47#47#32#53#49#50#10#32#32#80#65+
+  #78#69#76#95#67#76#79#83#69#68#79#79#82#44#32#47#47#32#49#48#50#52#10#32#32+
+  #80#65#78#69#76#95#66#76#79#67#75#77#79#78#44#32#47#47#32#50#48#52#56#10#32+
+  #32#80#65#78#69#76#95#76#73#70#84#76#69#70#84#44#32#47#47#32#52#48#57#54#10+
+  #32#32#80#65#78#69#76#95#76#73#70#84#82#73#71#72#84#44#32#47#47#32#56#49#57+
+  #50#10#125#10#10#98#105#116#115#101#116#32#80#97#110#101#108#70#108#97#103+
+  #32#123#10#32#32#80#65#78#69#76#95#70#76#65#71#95#78#79#78#69#32#61#32#48#44+
+  #32#47#47#32#48#10#32#32#80#65#78#69#76#95#70#76#65#71#95#66#76#69#78#68#73+
+  #78#71#44#32#47#47#32#49#10#32#32#80#65#78#69#76#95#70#76#65#71#95#72#73#68+
+  #69#44#32#47#47#32#50#10#32#32#80#65#78#69#76#95#70#76#65#71#95#87#65#84#69+
+  #82#84#69#88#84#85#82#69#83#44#32#47#47#32#52#10#125#10#10#101#110#117#109+
+  #32#69#102#102#101#99#116#65#99#116#105#111#110#32#123#10#32#32#69#70#70#69+
+  #67#84#95#78#79#78#69#44#32#47#47#32#48#10#32#32#69#70#70#69#67#84#95#84#69+
+  #76#69#80#79#82#84#44#32#47#47#32#49#10#32#32#69#70#70#69#67#84#95#82#69#83+
+  #80#65#87#78#44#32#47#47#32#50#10#32#32#69#70#70#69#67#84#95#70#73#82#69#44+
+  #32#47#47#32#51#10#125#10#10#101#110#117#109#32#73#116#101#109#32#123#10#32+
+  #32#73#84#69#77#95#78#79#78#69#44#32#47#47#32#48#10#32#32#73#84#69#77#95#77+
+  #69#68#75#73#84#95#83#77#65#76#76#44#32#47#47#32#49#10#32#32#73#84#69#77#95+
+  #77#69#68#75#73#84#95#76#65#82#71#69#44#32#47#47#32#50#10#32#32#73#84#69#77+
+  #95#77#69#68#75#73#84#95#66#76#65#67#75#44#32#47#47#32#51#10#32#32#73#84#69+
+  #77#95#65#82#77#79#82#95#71#82#69#69#78#44#32#47#47#32#52#10#32#32#73#84#69+
+  #77#95#65#82#77#79#82#95#66#76#85#69#44#32#47#47#32#53#10#32#32#73#84#69#77+
+  #95#83#80#72#69#82#69#95#66#76#85#69#44#32#47#47#32#54#10#32#32#73#84#69#77+
+  #95#83#80#72#69#82#69#95#87#72#73#84#69#44#32#47#47#32#55#10#32#32#73#84#69+
+  #77#95#83#85#73#84#44#32#47#47#32#56#10#32#32#73#84#69#77#95#79#88#89#71#69+
+  #78#44#32#47#47#32#57#10#32#32#73#84#69#77#95#73#78#86#85#76#44#32#47#47#32+
+  #49#48#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#83#65#87#44#32#47#47#32+
+  #49#49#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#83#72#79#84#71#85#78#49+
+  #44#32#47#47#32#49#50#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#83#72#79+
+  #84#71#85#78#50#44#32#47#47#32#49#51#10#32#32#73#84#69#77#95#87#69#65#80#79+
+  #78#95#67#72#65#73#78#71#85#78#44#32#47#47#32#49#52#10#32#32#73#84#69#77#95+
+  #87#69#65#80#79#78#95#82#79#67#75#69#84#76#65#85#78#67#72#69#82#44#32#47#47+
+  #32#49#53#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#80#76#65#83#77#65#44+
+  #32#47#47#32#49#54#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#66#70#71#44+
+  #32#47#47#32#49#55#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#83#85#80#69+
+  #82#80#85#76#69#77#69#84#44#32#47#47#32#49#56#10#32#32#73#84#69#77#95#65#77+
+  #77#79#95#66#85#76#76#69#84#83#44#32#47#47#32#49#57#10#32#32#73#84#69#77#95+
+  #65#77#77#79#95#66#85#76#76#69#84#83#95#66#79#88#44#32#47#47#32#50#48#10#32+
+  #32#73#84#69#77#95#65#77#77#79#95#83#72#69#76#76#83#44#32#47#47#32#50#49#10+
+  #32#32#73#84#69#77#95#65#77#77#79#95#83#72#69#76#76#83#95#66#79#88#44#32#47+
+  #47#32#50#50#10#32#32#73#84#69#77#95#65#77#77#79#95#82#79#67#75#69#84#44#32+
+  #47#47#32#50#51#10#32#32#73#84#69#77#95#65#77#77#79#95#82#79#67#75#69#84#95+
+  #66#79#88#44#32#47#47#32#50#52#10#32#32#73#84#69#77#95#65#77#77#79#95#67#69+
+  #76#76#44#32#47#47#32#50#53#10#32#32#73#84#69#77#95#65#77#77#79#95#67#69#76+
+  #76#95#66#73#71#44#32#47#47#32#50#54#10#32#32#73#84#69#77#95#65#77#77#79#95+
+  #66#65#67#75#80#65#67#75#44#32#47#47#32#50#55#10#32#32#73#84#69#77#95#75#69+
+  #89#95#82#69#68#44#32#47#47#32#50#56#10#32#32#73#84#69#77#95#75#69#89#95#71+
+  #82#69#69#78#44#32#47#47#32#50#57#10#32#32#73#84#69#77#95#75#69#89#95#66#76+
+  #85#69#44#32#47#47#32#51#48#10#32#32#73#84#69#77#95#87#69#65#80#79#78#95#75+
+  #65#83#84#69#84#44#32#47#47#32#51#49#10#32#32#73#84#69#77#95#87#69#65#80#79+
+  #78#95#80#73#83#84#79#76#44#32#47#47#32#51#50#10#32#32#73#84#69#77#95#66#79+
+  #84#84#76#69#44#32#47#47#32#51#51#10#32#32#73#84#69#77#95#72#69#76#77#69#84+
+  #44#32#47#47#32#51#52#10#32#32#73#84#69#77#95#74#69#84#80#65#67#75#44#32#47+
+  #47#32#51#53#10#32#32#73#84#69#77#95#73#78#86#73#83#44#32#47#47#32#51#54#10+
+  #32#32#73#84#69#77#95#87#69#65#80#79#78#95#70#76#65#77#69#84#72#82#79#87#69+
+  #82#44#32#47#47#32#51#55#10#32#32#73#84#69#77#95#65#77#77#79#95#70#85#69#76+
+  #67#65#78#44#32#47#47#32#51#56#10#32#32#47#47#10#32#32#73#84#69#77#95#77#65+
+  #88#32#61#32#77#65#88#44#32#47#47#32#115#116#111#114#101#32#116#104#101#32+
+  #108#97#115#116#32#105#116#101#109#39#115#32#105#100#32#105#110#32#104#101+
+  #114#101#32#117#115#101#32#116#104#105#115#32#105#110#32#102#111#114#32#108+
+  #111#111#112#115#10#125#10#10#98#105#116#115#101#116#32#73#116#101#109#79+
+  #112#116#105#111#110#32#123#10#32#32#73#84#69#77#95#79#80#84#73#79#78#95#78+
+  #79#78#69#32#61#32#48#44#32#47#47#32#48#10#32#32#73#84#69#77#95#79#80#84#73+
+  #79#78#95#79#78#76#89#68#77#44#32#47#47#32#49#10#32#32#73#84#69#77#95#79#80+
+  #84#73#79#78#95#70#65#76#76#44#32#47#47#32#50#10#125#10#10#101#110#117#109+
+  #32#65#114#101#97#84#121#112#101#32#123#10#32#32#65#82#69#65#95#78#79#78#69+
+  #44#32#47#47#32#48#10#32#32#65#82#69#65#95#80#76#65#89#69#82#80#79#73#78#84+
+  #49#44#32#47#47#32#49#10#32#32#65#82#69#65#95#80#76#65#89#69#82#80#79#73#78+
+  #84#50#44#32#47#47#32#50#10#32#32#65#82#69#65#95#68#77#80#79#73#78#84#44#32+
+  #47#47#32#51#10#32#32#65#82#69#65#95#82#69#68#70#76#65#71#44#32#47#47#32#52+
+  #10#32#32#65#82#69#65#95#66#76#85#69#70#76#65#71#44#32#47#47#32#53#10#32#32+
+  #65#82#69#65#95#68#79#77#70#76#65#71#44#32#47#47#32#54#10#32#32#65#82#69#65+
+  #95#82#69#68#84#69#65#77#80#79#73#78#84#44#32#47#47#32#55#10#32#32#65#82#69+
+  #65#95#66#76#85#69#84#69#65#77#80#79#73#78#84#44#32#47#47#32#56#10#125#10#10+
+  #101#110#117#109#32#77#111#110#115#116#101#114#32#123#10#32#32#77#79#78#83+
+  #84#69#82#95#78#79#78#69#44#32#47#47#32#48#10#32#32#77#79#78#83#84#69#82#95+
+  #68#69#77#79#78#44#32#47#47#32#49#10#32#32#77#79#78#83#84#69#82#95#73#77#80+
+  #44#32#47#47#32#50#10#32#32#77#79#78#83#84#69#82#95#90#79#77#66#89#44#32#47+
+  #47#32#51#10#32#32#77#79#78#83#84#69#82#95#83#69#82#71#44#32#47#47#32#52#10+
+  #32#32#77#79#78#83#84#69#82#95#67#89#66#69#82#44#32#47#47#32#53#10#32#32#77+
+  #79#78#83#84#69#82#95#67#71#85#78#44#32#47#47#32#54#10#32#32#77#79#78#83#84+
+  #69#82#95#66#65#82#79#78#44#32#47#47#32#55#10#32#32#77#79#78#83#84#69#82#95+
+  #75#78#73#71#72#84#44#32#47#47#32#56#10#32#32#77#79#78#83#84#69#82#95#67#65+
+  #67#79#44#32#47#47#32#57#10#32#32#77#79#78#83#84#69#82#95#83#79#85#76#44#32+
+  #47#47#32#49#48#10#32#32#77#79#78#83#84#69#82#95#80#65#73#78#44#32#47#47#32+
+  #49#49#10#32#32#77#79#78#83#84#69#82#95#83#80#73#68#69#82#44#32#47#47#32#49+
+  #50#10#32#32#77#79#78#83#84#69#82#95#66#83#80#44#32#47#47#32#49#51#10#32#32+
+  #77#79#78#83#84#69#82#95#77#65#78#67#85#66#44#32#47#47#32#49#52#10#32#32#77+
+  #79#78#83#84#69#82#95#83#75#69#76#44#32#47#47#32#49#53#10#32#32#77#79#78#83+
+  #84#69#82#95#86#73#76#69#44#32#47#47#32#49#54#10#32#32#77#79#78#83#84#69#82+
+  #95#70#73#83#72#44#32#47#47#32#49#55#10#32#32#77#79#78#83#84#69#82#95#66#65+
+  #82#82#69#76#44#32#47#47#32#49#56#10#32#32#77#79#78#83#84#69#82#95#82#79#66+
+  #79#44#32#47#47#32#49#57#10#32#32#77#79#78#83#84#69#82#95#77#65#78#44#32#47+
+  #47#32#50#48#10#125#10#10#101#110#117#109#32#84#114#105#103#103#101#114#83+
+  #104#111#116#32#123#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#80#73#83+
+  #84#79#76#44#32#47#47#32#48#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95+
+  #66#85#76#76#69#84#44#32#47#47#32#49#10#32#32#84#82#73#71#71#69#82#95#83#72+
+  #79#84#95#83#72#79#84#71#85#78#44#32#47#47#32#50#10#32#32#84#82#73#71#71#69+
+  #82#95#83#72#79#84#95#83#83#71#44#32#47#47#32#51#10#32#32#84#82#73#71#71#69+
+  #82#95#83#72#79#84#95#73#77#80#44#32#47#47#32#52#10#32#32#84#82#73#71#71#69+
+  #82#95#83#72#79#84#95#80#76#65#83#77#65#44#32#47#47#32#53#10#32#32#84#82#73+
+  #71#71#69#82#95#83#72#79#84#95#83#80#73#68#69#82#44#32#47#47#32#54#10#32#32+
+  #84#82#73#71#71#69#82#95#83#72#79#84#95#67#65#67#79#44#32#47#47#32#55#10#32+
+  #32#84#82#73#71#71#69#82#95#83#72#79#84#95#66#65#82#79#78#44#32#47#47#32#56+
+  #10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#77#65#78#67#85#66#44#32#47+
+  #47#32#57#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#82#69#86#44#32#47+
+  #47#32#49#48#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#82#79#67#75#69+
+  #84#44#32#47#47#32#49#49#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#66+
+  #70#71#44#32#47#47#32#49#50#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95+
+  #69#88#80#76#44#32#47#47#32#49#51#10#32#32#84#82#73#71#71#69#82#95#83#72#79+
+  #84#95#66#70#71#69#88#80#76#44#32#47#47#32#49#52#10#32#32#47#47#10#32#32#84+
+  #82#73#71#71#69#82#95#83#72#79#84#95#77#65#88#32#61#32#77#65#88#44#10#125#10+
+  #10#101#110#117#109#32#84#114#105#103#103#101#114#83#104#111#116#84#97#114+
+  #103#101#116#32#123#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82+
+  #71#69#84#95#78#79#78#69#44#32#47#47#32#48#10#32#32#84#82#73#71#71#69#82#95+
+  #83#72#79#84#95#84#65#82#71#69#84#95#77#79#78#44#32#47#47#32#49#10#32#32#84+
+  #82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#80#76#82#44#32#47+
+  #47#32#50#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84+
+  #95#82#69#68#44#32#47#47#32#51#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84+
+  #95#84#65#82#71#69#84#95#66#76#85#69#44#32#47#47#32#52#10#32#32#84#82#73#71+
+  #71#69#82#95#83#72#79#84#95#84#65#82#71#69#84#95#77#79#78#80#76#82#44#32#47+
+  #47#32#53#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#84#65#82#71#69#84+
+  #95#80#76#82#77#79#78#44#32#47#47#32#54#10#125#10#10#101#110#117#109#32#84+
+  #114#105#103#103#101#114#83#104#111#116#65#105#109#32#123#10#32#32#84#82#73+
+  #71#71#69#82#95#83#72#79#84#95#65#73#77#95#68#69#70#65#85#76#84#44#32#47#47+
+  #32#48#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95#65#73#77#95#65#76#76+
+  #77#65#80#44#32#47#47#32#49#10#32#32#84#82#73#71#71#69#82#95#83#72#79#84#95+
+  #65#73#77#95#84#82#65#67#69#44#32#47#47#32#50#10#32#32#84#82#73#71#71#69#82+
+  #95#83#72#79#84#95#65#73#77#95#84#82#65#67#69#65#76#76#44#32#47#47#32#51#10+
+  #125#10#10#101#110#117#109#32#84#114#105#103#103#101#114#69#102#102#101#99+
+  #116#32#123#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#80#65#82+
+  #84#73#67#76#69#44#32#47#47#32#48#10#32#32#84#82#73#71#71#69#82#95#69#70#70+
+  #69#67#84#95#65#78#73#77#65#84#73#79#78#44#32#47#47#32#49#10#125#10#10#101+
+  #110#117#109#32#84#114#105#103#103#101#114#69#102#102#101#99#116#84#121#112+
+  #101#32#123#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#83#76#73+
+  #81#85#73#68#44#32#47#47#32#48#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69+
+  #67#84#95#76#76#73#81#85#73#68#44#32#47#47#32#49#10#32#32#84#82#73#71#71#69+
+  #82#95#69#70#70#69#67#84#95#68#76#73#81#85#73#68#44#32#47#47#32#50#10#32#32+
+  #84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#66#76#79#79#68#44#32#47#47#32+
+  #51#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#83#80#65#82#75#44+
+  #32#47#47#32#52#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#66#85+
+  #66#66#76#69#44#32#47#47#32#53#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69+
+  #67#84#95#77#65#88#32#61#32#77#65#88#44#10#125#10#10#101#110#117#109#32#84+
+  #114#105#103#103#101#114#69#102#102#101#99#116#80#111#115#32#123#10#32#32#84+
+  #82#73#71#71#69#82#95#69#70#70#69#67#84#95#80#79#83#95#67#69#78#84#69#82#44+
+  #32#47#47#32#48#10#32#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#95#80#79+
+  #83#95#65#82#69#65#44#32#47#47#32#49#10#125#10#10#98#105#116#115#101#116#32+
+  #65#99#116#105#118#97#116#101#84#121#112#101#32#123#10#32#32#65#67#84#73#86+
+  #65#84#69#95#78#79#78#69#32#61#32#48#44#32#47#47#32#48#10#32#32#65#67#84#73+
+  #86#65#84#69#95#80#76#65#89#69#82#67#79#76#76#73#68#69#44#32#47#47#32#49#10+
+  #32#32#65#67#84#73#86#65#84#69#95#77#79#78#83#84#69#82#67#79#76#76#73#68#69+
+  #44#32#47#47#32#50#10#32#32#65#67#84#73#86#65#84#69#95#80#76#65#89#69#82#80+
+  #82#69#83#83#44#32#47#47#32#52#10#32#32#65#67#84#73#86#65#84#69#95#77#79#78+
+  #83#84#69#82#80#82#69#83#83#44#32#47#47#32#56#10#32#32#65#67#84#73#86#65#84+
+  #69#95#83#72#79#84#44#32#47#47#32#49#54#10#32#32#65#67#84#73#86#65#84#69#95+
+  #78#79#77#79#78#83#84#69#82#44#32#47#47#32#51#50#10#32#32#65#67#84#73#86#65+
+  #84#69#95#67#85#83#84#79#77#32#61#32#50#53#53#44#32#47#47#32#110#111#116#101+
+  #32#116#104#97#116#32#34#100#105#114#101#99#116#32#97#115#115#105#103#110#34+
+  #32#102#105#101#108#100#32#100#111#101#115#110#39#116#32#97#102#102#101#99+
+  #116#32#98#105#116#32#99#111#117#110#116#101#114#10#125#10#10#98#105#116#115+
+  #101#116#32#75#101#121#32#123#10#32#32#75#69#89#95#78#79#78#69#32#61#32#48+
+  #44#32#47#47#32#48#10#32#32#75#69#89#95#82#69#68#44#32#47#47#32#49#10#32#32+
+  #75#69#89#95#71#82#69#69#78#44#32#47#47#32#50#10#32#32#75#69#89#95#66#76#85+
+  #69#44#32#47#47#32#52#10#32#32#75#69#89#95#82#69#68#84#69#65#77#44#32#47#47+
+  #32#56#10#32#32#75#69#89#95#66#76#85#69#84#69#65#77#44#32#47#47#32#49#54#10+
+  #125#10#10#10#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
-  #47#10#47#47#32#118#97#114#105#111#117#115#32#116#114#105#103#103#101#114+
-  #115#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73+
-  #71#71#69#82#95#69#88#73#84#32#123#10#32#32#77#97#112#78#97#109#101#32#105+
-  #115#32#34#109#97#112#34#32#116#121#112#101#32#99#104#97#114#91#49#54#93#32+
-  #111#102#102#115#101#116#32#48#59#10#125#10#10#84#114#105#103#103#101#114#68+
-  #97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#84#69#76#69#80#79#82#84+
-  #32#123#10#32#32#84#97#114#103#101#116#80#111#105#110#116#32#105#115#32#34+
-  #116#97#114#103#101#116#34#32#116#121#112#101#32#112#111#105#110#116#32#111+
-  #102#102#115#101#116#32#48#59#10#32#32#100#50#100#95#116#101#108#101#112#111+
-  #114#116#32#105#115#32#34#100#50#100#34#32#116#121#112#101#32#98#111#111#108+
-  #32#111#102#102#115#101#116#32#56#32#100#101#102#97#117#108#116#32#102#97+
-  #108#115#101#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#115+
-  #105#108#101#110#116#95#116#101#108#101#112#111#114#116#32#105#115#32#34#115+
-  #105#108#101#110#116#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102+
-  #115#101#116#32#57#32#100#101#102#97#117#108#116#32#102#97#108#115#101#32+
-  #111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#84#108#112#68#105+
-  #114#32#105#115#32#34#100#105#114#101#99#116#105#111#110#34#32#116#121#112+
-  #101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#48#32#101#110+
-  #117#109#32#68#105#114#84#121#112#101#32#100#101#102#97#117#108#116#32#68#73+
-  #82#95#76#69#70#84#32#111#109#105#116#100#101#102#97#117#108#116#59#10#125+
-  #10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#40#84#82#73+
-  #71#71#69#82#95#79#80#69#78#68#79#79#82#44#32#84#82#73#71#71#69#82#95#67#76+
-  #79#83#69#68#79#79#82#44#32#84#82#73#71#71#69#82#95#68#79#79#82#44#32#84#82+
-  #73#71#71#69#82#95#68#79#79#82#53#44#32#84#82#73#71#71#69#82#95#67#76#79#83+
-  #69#84#82#65#80#44#32#84#82#73#71#71#69#82#95#84#82#65#80#44#32#84#82#73#71+
-  #71#69#82#95#76#73#70#84#85#80#44#32#84#82#73#71#71#69#82#95#76#73#70#84#68+
-  #79#87#78#44#32#84#82#73#71#71#69#82#95#76#73#70#84#41#32#123#10#32#32#80#97+
-  #110#101#108#73#68#32#105#115#32#34#112#97#110#101#108#105#100#34#32#116#121+
-  #112#101#32#105#110#116#32#111#102#102#115#101#116#32#48#32#112#97#110#101+
-  #108#59#10#32#32#78#111#83#111#117#110#100#32#105#115#32#34#115#105#108#101+
-  #110#116#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116+
-  #32#52#32#100#101#102#97#117#108#116#32#102#97#108#115#101#32#111#109#105+
-  #116#100#101#102#97#117#108#116#59#10#32#32#100#50#100#95#100#111#111#114+
-  #115#32#105#115#32#34#100#50#100#34#32#116#121#112#101#32#98#111#111#108#32+
-  #111#102#102#115#101#116#32#53#32#100#101#102#97#117#108#116#32#102#97#108+
-  #115#101#32#111#109#105#116#100#101#102#97#117#108#116#59#10#125#10#10#84+
-  #114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#40#84#82#73#71#71#69+
-  #82#95#80#82#69#83#83#44#32#84#82#73#71#71#69#82#95#79#78#44#32#84#82#73#71+
-  #71#69#82#95#79#70#70#44#32#84#82#73#71#71#69#82#95#79#78#79#70#70#41#32#123+
-  #10#32#32#47#47#116#88#32#105#115#32#34#116#120#34#32#116#121#112#101#32#105+
-  #110#116#32#111#102#102#115#101#116#32#48#59#10#32#32#47#47#116#89#32#105+
-  #115#32#34#116#121#34#32#116#121#112#101#32#105#110#116#32#111#102#102#115+
-  #101#116#32#52#59#10#32#32#80#111#115#32#105#115#32#34#112#111#115#105#116+
-  #105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102#115+
-  #101#116#32#48#32#97#115#32#116#120#121#59#10#32#32#47#47#116#87#105#100#116+
-  #104#32#105#115#32#34#119#105#100#116#104#34#32#116#121#112#101#32#117#115+
-  #104#111#114#116#32#111#102#102#115#101#116#32#56#59#10#32#32#47#47#116#72+
-  #101#105#103#104#116#32#105#115#32#34#104#101#105#103#104#116#34#32#116#121+
-  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#48#59+
-  #10#32#32#83#105#122#101#32#105#115#32#34#115#105#122#101#34#32#116#121#112+
-  #101#32#115#105#122#101#32#111#102#102#115#101#116#32#56#32#97#115#32#116+
-  #119#104#59#10#32#32#87#97#105#116#32#105#115#32#34#119#97#105#116#34#32#116+
-  #121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#50+
-  #59#10#32#32#67#111#117#110#116#32#105#115#32#34#99#111#117#110#116#34#32+
-  #116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49+
-  #52#59#10#32#32#77#111#110#115#116#101#114#73#68#32#105#115#32#34#109#111+
-  #110#115#116#101#114#105#100#34#32#116#121#112#101#32#105#110#116#32#111#102+
-  #102#115#101#116#32#49#54#32#109#111#110#115#116#101#114#32#97#115#32#109+
-  #111#110#115#116#101#114#105#100#59#10#32#32#69#120#116#82#97#110#100#111+
-  #109#32#105#115#32#34#101#120#116#114#97#110#100#111#109#34#32#116#121#112+
-  #101#32#98#111#111#108#32#111#102#102#115#101#116#32#50#48#59#10#125#10#10+
-  #84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69+
-  #82#95#83#69#67#82#69#84#32#123#10#125#10#10#84#114#105#103#103#101#114#68+
-  #97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#84#69#88#84#85#82#69#32+
-  #123#10#32#32#65#99#116#105#118#97#116#101#79#110#99#101#32#105#115#32#34#97+
-  #99#116#105#118#97#116#101#111#110#99#101#34#32#116#121#112#101#32#98#111+
-  #111#108#32#111#102#102#115#101#116#32#48#59#10#32#32#65#110#105#109#79#110+
-  #99#101#32#105#115#32#34#97#110#105#109#97#116#101#111#110#99#101#34#32#116+
-  #121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#49#59#10#125#10+
-  #10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71+
-  #69#82#95#83#79#85#78#68#32#123#10#32#32#83#111#117#110#100#78#97#109#101#32+
-  #105#115#32#34#115#111#117#110#100#110#97#109#101#34#32#116#121#112#101#32+
-  #99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32#48#59#10#32#32#86+
-  #111#108#117#109#101#32#105#115#32#34#118#111#108#117#109#101#34#32#116#121+
-  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#54#52#59#10#32+
-  #32#80#97#110#32#105#115#32#34#112#97#110#34#32#116#121#112#101#32#117#98+
-  #121#116#101#32#111#102#102#115#101#116#32#54#53#59#10#32#32#76#111#99#97+
-  #108#32#105#115#32#34#108#111#99#97#108#34#32#116#121#112#101#32#98#111#111+
-  #108#32#111#102#102#115#101#116#32#54#54#59#10#32#32#80#108#97#121#67#111+
-  #117#110#116#32#105#115#32#34#112#108#97#121#99#111#117#110#116#34#32#116+
-  #121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#54#55#59#10+
-  #32#32#83#111#117#110#100#83#119#105#116#99#104#32#105#115#32#34#115#111#117+
-  #110#100#115#119#105#116#99#104#34#32#116#121#112#101#32#98#111#111#108#32+
-  #111#102#102#115#101#116#32#54#56#59#10#125#10#10#84#114#105#103#103#101#114+
-  #68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#80#65#87#78#77#79+
-  #78#83#84#69#82#32#123#10#32#32#77#111#110#80#111#115#32#105#115#32#34#112+
-  #111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32+
-  #111#102#102#115#101#116#32#48#59#10#32#32#77#111#110#84#121#112#101#32#105+
-  #115#32#34#116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32+
-  #111#102#102#115#101#116#32#56#59#10#32#32#77#111#110#72#101#97#108#116#104+
-  #32#105#115#32#34#104#101#97#108#116#104#34#32#116#121#112#101#32#105#110+
-  #116#32#111#102#102#115#101#116#32#49#50#59#10#32#32#77#111#110#68#105#114+
-  #32#105#115#32#34#100#105#114#101#99#116#105#111#110#34#32#116#121#112#101+
-  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#54#32#101#110#117+
-  #109#32#68#105#114#84#121#112#101#59#10#32#32#77#111#110#65#99#116#105#118+
-  #101#32#105#115#32#34#97#99#116#105#118#101#34#32#116#121#112#101#32#98#111+
-  #111#108#32#111#102#102#115#101#116#32#49#55#59#10#32#32#77#111#110#67#111+
-  #117#110#116#32#105#115#32#34#99#111#117#110#116#34#32#116#121#112#101#32+
-  #105#110#116#32#111#102#102#115#101#116#32#50#48#59#10#32#32#77#111#110#69+
-  #102#102#101#99#116#32#105#115#32#34#101#102#102#101#99#116#34#32#116#121+
-  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#50#52#59#10#32+
-  #32#77#111#110#77#97#120#32#105#115#32#34#109#97#120#34#32#116#121#112#101+
-  #32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#54#59#10#32#32+
-  #77#111#110#68#101#108#97#121#32#105#115#32#34#100#101#108#97#121#34#32#116+
-  #121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#56+
-  #59#10#32#32#77#111#110#66#101#104#97#118#32#105#115#32#34#98#101#104#97#118+
-  #105#111#117#114#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#51#48#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116+
-  #97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#80#65#87#78#73#84#69#77#32+
-  #123#10#32#32#73#116#101#109#80#111#115#32#105#115#32#34#112#111#115#105#116+
-  #105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102#115+
-  #101#116#32#48#59#10#32#32#73#116#101#109#84#121#112#101#32#105#115#32#34+
-  #116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#56#59#10#32#32#73#116#101#109#70#97#108#108#115#32#105#115+
-  #32#34#103#114#97#118#105#116#121#34#32#116#121#112#101#32#98#111#111#108#32+
-  #111#102#102#115#101#116#32#57#59#10#32#32#73#116#101#109#79#110#108#121#68+
-  #77#32#105#115#32#34#100#109#111#110#108#121#34#32#116#121#112#101#32#98#111+
-  #111#108#32#111#102#102#115#101#116#32#49#48#59#10#32#32#73#116#101#109#67+
-  #111#117#110#116#32#105#115#32#34#99#111#117#110#116#34#32#116#121#112#101+
-  #32#105#110#116#32#111#102#102#115#101#116#32#49#50#59#10#32#32#73#116#101+
-  #109#69#102#102#101#99#116#32#105#115#32#34#101#102#102#101#99#116#34#32#116+
-  #121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#54#59#10+
-  #32#32#73#116#101#109#77#97#120#32#105#115#32#34#109#97#120#34#32#116#121+
-  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#56#59+
-  #10#32#32#73#116#101#109#68#101#108#97#121#32#105#115#32#34#100#101#108#97+
-  #121#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
-  #116#32#50#48#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
-  #111#114#32#84#82#73#71#71#69#82#95#77#85#83#73#67#32#123#10#32#32#77#117+
-  #115#105#99#78#97#109#101#32#105#115#32#34#110#97#109#101#34#32#116#121#112+
-  #101#32#99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32#48#59#10#32+
-  #32#77#117#115#105#99#65#99#116#105#111#110#32#105#115#32#34#97#99#116#105+
+  #47#47#47#47#47#47#47#47#47#10#47#47#32#118#97#114#105#111#117#115#32#116+
+  #114#105#103#103#101#114#115#10#84#114#105#103#103#101#114#68#97#116#97#32+
+  #102#111#114#32#84#82#73#71#71#69#82#95#69#88#73#84#32#123#10#32#32#77#97+
+  #112#78#97#109#101#32#105#115#32#34#109#97#112#34#32#116#121#112#101#32#99+
+  #104#97#114#91#49#54#93#32#111#102#102#115#101#116#32#48#59#10#125#10#10#84+
+  #114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82+
+  #95#84#69#76#69#80#79#82#84#32#123#10#32#32#84#97#114#103#101#116#80#111#105+
+  #110#116#32#105#115#32#34#116#97#114#103#101#116#34#32#116#121#112#101#32+
+  #112#111#105#110#116#32#111#102#102#115#101#116#32#48#59#10#32#32#100#50#100+
+  #95#116#101#108#101#112#111#114#116#32#105#115#32#34#100#50#100#34#32#116+
+  #121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#56#32#100#101+
+  #102#97#117#108#116#32#102#97#108#115#101#32#111#109#105#116#100#101#102#97+
+  #117#108#116#59#10#32#32#115#105#108#101#110#116#95#116#101#108#101#112#111+
+  #114#116#32#105#115#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32+
+  #98#111#111#108#32#111#102#102#115#101#116#32#57#32#100#101#102#97#117#108+
+  #116#32#102#97#108#115#101#32#111#109#105#116#100#101#102#97#117#108#116#59+
+  #10#32#32#84#108#112#68#105#114#32#105#115#32#34#100#105#114#101#99#116#105+
   #111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
-  #116#32#54#52#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
-  #111#114#32#84#82#73#71#71#69#82#95#80#85#83#72#32#123#10#32#32#80#117#115+
-  #104#65#110#103#108#101#32#105#115#32#34#97#110#103#108#101#34#32#116#121+
-  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#48#59#10+
-  #32#32#80#117#115#104#70#111#114#99#101#32#105#115#32#34#102#111#114#99#101+
+  #116#32#49#48#32#101#110#117#109#32#68#105#114#84#121#112#101#32#100#101#102+
+  #97#117#108#116#32#68#73#82#95#76#69#70#84#32#111#109#105#116#100#101#102#97+
+  #117#108#116#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
+  #111#114#32#40#84#82#73#71#71#69#82#95#79#80#69#78#68#79#79#82#44#32#84#82+
+  #73#71#71#69#82#95#67#76#79#83#69#68#79#79#82#44#32#84#82#73#71#71#69#82#95+
+  #68#79#79#82#44#32#84#82#73#71#71#69#82#95#68#79#79#82#53#44#32#84#82#73#71+
+  #71#69#82#95#67#76#79#83#69#84#82#65#80#44#32#84#82#73#71#71#69#82#95#84#82+
+  #65#80#44#32#84#82#73#71#71#69#82#95#76#73#70#84#85#80#44#32#84#82#73#71#71+
+  #69#82#95#76#73#70#84#68#79#87#78#44#32#84#82#73#71#71#69#82#95#76#73#70#84+
+  #41#32#123#10#32#32#80#97#110#101#108#73#68#32#105#115#32#34#112#97#110#101+
+  #108#105#100#34#32#116#121#112#101#32#105#110#116#32#111#102#102#115#101#116+
+  #32#48#32#112#97#110#101#108#59#10#32#32#78#111#83#111#117#110#100#32#105+
+  #115#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32#98#111#111#108+
+  #32#111#102#102#115#101#116#32#52#32#100#101#102#97#117#108#116#32#102#97+
+  #108#115#101#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#100+
+  #50#100#95#100#111#111#114#115#32#105#115#32#34#100#50#100#34#32#116#121#112+
+  #101#32#98#111#111#108#32#111#102#102#115#101#116#32#53#32#100#101#102#97+
+  #117#108#116#32#102#97#108#115#101#32#111#109#105#116#100#101#102#97#117#108+
+  #116#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114+
+  #32#40#84#82#73#71#71#69#82#95#80#82#69#83#83#44#32#84#82#73#71#71#69#82#95+
+  #79#78#44#32#84#82#73#71#71#69#82#95#79#70#70#44#32#84#82#73#71#71#69#82#95+
+  #79#78#79#70#70#41#32#123#10#32#32#47#47#116#88#32#105#115#32#34#116#120#34+
+  #32#116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#48#59#10#32+
+  #32#47#47#116#89#32#105#115#32#34#116#121#34#32#116#121#112#101#32#105#110+
+  #116#32#111#102#102#115#101#116#32#52#59#10#32#32#80#111#115#32#105#115#32+
+  #34#112#111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110+
+  #116#32#111#102#102#115#101#116#32#48#32#97#115#32#116#120#121#59#10#32#32+
+  #47#47#116#87#105#100#116#104#32#105#115#32#34#119#105#100#116#104#34#32#116+
+  #121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#56#59+
+  #10#32#32#47#47#116#72#101#105#103#104#116#32#105#115#32#34#104#101#105#103+
+  #104#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115+
+  #101#116#32#49#48#59#10#32#32#83#105#122#101#32#105#115#32#34#115#105#122+
+  #101#34#32#116#121#112#101#32#115#105#122#101#32#111#102#102#115#101#116#32+
+  #56#32#97#115#32#116#119#104#59#10#32#32#87#97#105#116#32#105#115#32#34#119+
+  #97#105#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102+
+  #115#101#116#32#49#50#59#10#32#32#67#111#117#110#116#32#105#115#32#34#99#111+
+  #117#110#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102+
+  #115#101#116#32#49#52#59#10#32#32#77#111#110#115#116#101#114#73#68#32#105+
+  #115#32#34#109#111#110#115#116#101#114#105#100#34#32#116#121#112#101#32#105+
+  #110#116#32#111#102#102#115#101#116#32#49#54#32#109#111#110#115#116#101#114+
+  #32#97#115#32#109#111#110#115#116#101#114#105#100#59#10#32#32#69#120#116#82+
+  #97#110#100#111#109#32#105#115#32#34#101#120#116#114#97#110#100#111#109#34+
+  #32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#50#48#59+
+  #10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84+
+  #82#73#71#71#69#82#95#83#69#67#82#69#84#32#123#10#125#10#10#84#114#105#103+
+  #103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#84#69#88+
+  #84#85#82#69#32#123#10#32#32#65#99#116#105#118#97#116#101#79#110#99#101#32+
+  #105#115#32#34#97#99#116#105#118#97#116#101#111#110#99#101#34#32#116#121#112+
+  #101#32#98#111#111#108#32#111#102#102#115#101#116#32#48#59#10#32#32#65#110+
+  #105#109#79#110#99#101#32#105#115#32#34#97#110#105#109#97#116#101#111#110#99+
+  #101#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32+
+  #49#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114+
+  #32#84#82#73#71#71#69#82#95#83#79#85#78#68#32#123#10#32#32#83#111#117#110+
+  #100#78#97#109#101#32#105#115#32#34#115#111#117#110#100#110#97#109#101#34#32+
+  #116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32+
+  #48#59#10#32#32#86#111#108#117#109#101#32#105#115#32#34#118#111#108#117#109+
+  #101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
+  #32#54#52#59#10#32#32#80#97#110#32#105#115#32#34#112#97#110#34#32#116#121+
+  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#54#53#59#10#32+
+  #32#76#111#99#97#108#32#105#115#32#34#108#111#99#97#108#34#32#116#121#112+
+  #101#32#98#111#111#108#32#111#102#102#115#101#116#32#54#54#59#10#32#32#80+
+  #108#97#121#67#111#117#110#116#32#105#115#32#34#112#108#97#121#99#111#117+
+  #110#116#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
+  #116#32#54#55#59#10#32#32#83#111#117#110#100#83#119#105#116#99#104#32#105+
+  #115#32#34#115#111#117#110#100#115#119#105#116#99#104#34#32#116#121#112#101+
+  #32#98#111#111#108#32#111#102#102#115#101#116#32#54#56#59#10#125#10#10#84+
+  #114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82+
+  #95#83#80#65#87#78#77#79#78#83#84#69#82#32#123#10#32#32#77#111#110#80#111+
+  #115#32#105#115#32#34#112#111#115#105#116#105#111#110#34#32#116#121#112#101+
+  #32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#59#10#32#32#77#111+
+  #110#84#121#112#101#32#105#115#32#34#116#121#112#101#34#32#116#121#112#101+
+  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#56#59#10#32#32#77#111+
+  #110#72#101#97#108#116#104#32#105#115#32#34#104#101#97#108#116#104#34#32#116+
+  #121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#50#59#10#32#32+
+  #77#111#110#68#105#114#32#105#115#32#34#100#105#114#101#99#116#105#111#110+
   #34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32+
-  #50#59#10#32#32#82#101#115#101#116#86#101#108#32#105#115#32#34#114#101#115+
-  #101#116#118#101#108#111#99#105#116#121#34#32#116#121#112#101#32#98#111#111+
-  #108#32#111#102#102#115#101#116#32#51#59#10#125#10#10#84#114#105#103#103#101+
-  #114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#67#79#82#69+
-  #32#123#10#32#32#83#99#111#114#101#65#99#116#105#111#110#32#105#115#32#34#97+
-  #99#116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102+
-  #102#115#101#116#32#48#59#10#32#32#83#99#111#114#101#67#111#117#110#116#32+
-  #105#115#32#34#99#111#117#110#116#34#32#116#121#112#101#32#117#98#121#116+
-  #101#32#111#102#102#115#101#116#32#49#59#10#32#32#83#99#111#114#101#84#101+
-  #97#109#32#105#115#32#34#116#101#97#109#34#32#116#121#112#101#32#117#98#121+
-  #116#101#32#111#102#102#115#101#116#32#50#59#10#32#32#83#99#111#114#101#67+
-  #111#110#32#105#115#32#34#99#111#110#115#111#108#101#34#32#116#121#112#101+
-  #32#98#111#111#108#32#111#102#102#115#101#116#32#51#59#10#32#32#83#99#111+
-  #114#101#77#115#103#32#105#115#32#34#109#101#115#115#97#103#101#34#32#116+
-  #121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#52#59#10#125#10+
-  #10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71+
-  #69#82#95#77#69#83#83#65#71#69#32#123#10#32#32#77#101#115#115#97#103#101#75+
-  #105#110#100#32#105#115#32#34#107#105#110#100#34#32#116#121#112#101#32#117+
-  #98#121#116#101#32#111#102#102#115#101#116#32#48#59#10#32#32#77#101#115#115+
-  #97#103#101#83#101#110#100#84#111#32#105#115#32#34#115#101#110#100#116#111+
+  #49#54#32#101#110#117#109#32#68#105#114#84#121#112#101#59#10#32#32#77#111+
+  #110#65#99#116#105#118#101#32#105#115#32#34#97#99#116#105#118#101#34#32#116+
+  #121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#49#55#59#10#32+
+  #32#77#111#110#67#111#117#110#116#32#105#115#32#34#99#111#117#110#116#34#32+
+  #116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#50#48#59#10#32+
+  #32#77#111#110#69#102#102#101#99#116#32#105#115#32#34#101#102#102#101#99#116+
   #34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32+
-  #49#59#10#32#32#77#101#115#115#97#103#101#84#101#120#116#32#105#115#32#34+
-  #116#101#120#116#34#32#116#121#112#101#32#99#104#97#114#91#49#48#48#93#32+
-  #111#102#102#115#101#116#32#50#59#10#32#32#77#101#115#115#97#103#101#84#105+
-  #109#101#32#105#115#32#34#116#105#109#101#34#32#116#121#112#101#32#117#115+
-  #104#111#114#116#32#111#102#102#115#101#116#32#49#48#50#59#10#125#10#10#84+
-  #114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82+
-  #95#68#65#77#65#71#69#32#123#10#32#32#68#97#109#97#103#101#86#97#108#117#101+
-  #32#105#115#32#34#97#109#111#117#110#116#34#32#116#121#112#101#32#117#115+
-  #104#111#114#116#32#111#102#102#115#101#116#32#48#59#10#32#32#68#97#109#97+
-  #103#101#73#110#116#101#114#118#97#108#32#105#115#32#34#105#110#116#101#114+
-  #118#97#108#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102+
-  #115#101#116#32#50#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97+
-  #32#102#111#114#32#84#82#73#71#71#69#82#95#72#69#65#76#84#72#32#123#10#32#32+
-  #72#101#97#108#86#97#108#117#101#32#105#115#32#34#97#109#111#117#110#116#34+
+  #50#52#59#10#32#32#77#111#110#77#97#120#32#105#115#32#34#109#97#120#34#32+
+  #116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50+
+  #54#59#10#32#32#77#111#110#68#101#108#97#121#32#105#115#32#34#100#101#108#97+
+  #121#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
+  #116#32#50#56#59#10#32#32#77#111#110#66#101#104#97#118#32#105#115#32#34#98+
+  #101#104#97#118#105#111#117#114#34#32#116#121#112#101#32#117#98#121#116#101+
+  #32#111#102#102#115#101#116#32#51#48#59#10#125#10#10#84#114#105#103#103#101+
+  #114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#80#65#87#78+
+  #73#84#69#77#32#123#10#32#32#73#116#101#109#80#111#115#32#105#115#32#34#112+
+  #111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32+
+  #111#102#102#115#101#116#32#48#59#10#32#32#73#116#101#109#84#121#112#101#32+
+  #105#115#32#34#116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101+
+  #32#111#102#102#115#101#116#32#56#59#10#32#32#73#116#101#109#70#97#108#108+
+  #115#32#105#115#32#34#103#114#97#118#105#116#121#34#32#116#121#112#101#32#98+
+  #111#111#108#32#111#102#102#115#101#116#32#57#59#10#32#32#73#116#101#109#79+
+  #110#108#121#68#77#32#105#115#32#34#100#109#111#110#108#121#34#32#116#121+
+  #112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#49#48#59#10#32#32+
+  #73#116#101#109#67#111#117#110#116#32#105#115#32#34#99#111#117#110#116#34#32+
+  #116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#50#59#10#32+
+  #32#73#116#101#109#69#102#102#101#99#116#32#105#115#32#34#101#102#102#101#99+
+  #116#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
+  #32#49#54#59#10#32#32#73#116#101#109#77#97#120#32#105#115#32#34#109#97#120+
+  #34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116+
+  #32#49#56#59#10#32#32#73#116#101#109#68#101#108#97#121#32#105#115#32#34#100+
+  #101#108#97#121#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102+
+  #102#115#101#116#32#50#48#59#10#125#10#10#84#114#105#103#103#101#114#68#97+
+  #116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#77#85#83#73#67#32#123#10+
+  #32#32#77#117#115#105#99#78#97#109#101#32#105#115#32#34#110#97#109#101#34#32+
+  #116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32+
+  #48#59#10#32#32#77#117#115#105#99#65#99#116#105#111#110#32#105#115#32#34#97+
+  #99#116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102+
+  #102#115#101#116#32#54#52#59#10#125#10#10#84#114#105#103#103#101#114#68#97+
+  #116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#80#85#83#72#32#123#10#32+
+  #32#80#117#115#104#65#110#103#108#101#32#105#115#32#34#97#110#103#108#101#34+
   #32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32+
-  #48#59#10#32#32#72#101#97#108#73#110#116#101#114#118#97#108#32#105#115#32#34+
-  #105#110#116#101#114#118#97#108#34#32#116#121#112#101#32#117#115#104#111#114+
-  #116#32#111#102#102#115#101#116#32#50#59#10#32#32#72#101#97#108#77#97#120#32+
-  #105#115#32#34#109#97#120#34#32#116#121#112#101#32#98#111#111#108#32#111#102+
-  #102#115#101#116#32#52#59#10#32#32#72#101#97#108#83#105#108#101#110#116#32+
-  #105#115#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32#98#111#111+
-  #108#32#111#102#102#115#101#116#32#53#59#10#125#10#10#84#114#105#103#103#101+
-  #114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#72#79#84#32+
-  #123#10#32#32#83#104#111#116#80#111#115#32#105#115#32#34#112#111#115#105#116+
-  #105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102#115+
-  #101#116#32#48#59#10#32#32#83#104#111#116#84#121#112#101#32#105#115#32#34+
-  #116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#56#32#101#110#117#109#32#84#114#105#103#103#101#114#83#104+
-  #111#116#59#10#32#32#83#104#111#116#84#97#114#103#101#116#32#105#115#32#34+
-  #116#97#114#103#101#116#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#57#32#101#110#117#109#32#84#114#105#103#103#101#114+
-  #83#104#111#116#84#97#114#103#101#116#59#10#32#32#83#104#111#116#83#111#117+
-  #110#100#32#105#115#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32+
-  #110#101#103#98#111#111#108#32#111#102#102#115#101#116#32#49#48#59#32#47#47+
-  #32#110#101#103#98#111#111#108#33#10#32#32#83#104#111#116#65#105#109#32#105+
-  #115#32#34#97#105#109#34#32#116#121#112#101#32#98#121#116#101#32#111#102#102+
-  #115#101#116#32#49#49#59#10#32#32#83#104#111#116#80#97#110#101#108#73#68#32+
-  #105#115#32#34#112#97#110#101#108#105#100#34#32#116#121#112#101#32#105#110+
-  #116#32#111#102#102#115#101#116#32#49#50#59#10#32#32#83#104#111#116#73#110+
-  #116#83#105#103#104#116#32#105#115#32#34#115#105#103#104#116#34#32#116#121+
-  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#54#59+
-  #10#32#32#83#104#111#116#65#110#103#108#101#32#105#115#32#34#97#110#103#108+
-  #101#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
-  #116#32#49#56#59#10#32#32#83#104#111#116#87#97#105#116#32#105#115#32#34#119+
-  #97#105#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102+
-  #115#101#116#32#50#48#59#10#32#32#83#104#111#116#65#99#99#117#114#97#99#121+
-  #32#105#115#32#34#97#99#99#117#114#97#99#121#34#32#116#121#112#101#32#117+
-  #115#104#111#114#116#32#111#102#102#115#101#116#32#50#50#59#10#32#32#83#104+
-  #111#116#65#109#109#111#32#105#115#32#34#97#109#109#111#34#32#116#121#112+
-  #101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#52#59#10#32+
-  #32#83#104#111#116#73#110#116#82#101#108#111#97#100#32#105#115#32#34#114#101+
-  #108#111#97#100#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102+
-  #102#115#101#116#32#50#54#59#10#125#10#10#84#114#105#103#103#101#114#68#97+
-  #116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#32#123+
-  #10#32#32#70#88#67#111#117#110#116#32#105#115#32#34#99#111#117#110#116#34#32+
-  #116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#48#59+
-  #10#32#32#70#88#84#121#112#101#32#105#115#32#34#116#121#112#101#34#32#116+
-  #121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#59#10#32+
-  #32#70#88#83#117#98#84#121#112#101#32#105#115#32#34#115#117#98#116#121#112+
+  #48#59#10#32#32#80#117#115#104#70#111#114#99#101#32#105#115#32#34#102#111+
+  #114#99#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
+  #101#116#32#50#59#10#32#32#82#101#115#101#116#86#101#108#32#105#115#32#34+
+  #114#101#115#101#116#118#101#108#111#99#105#116#121#34#32#116#121#112#101#32+
+  #98#111#111#108#32#111#102#102#115#101#116#32#51#59#10#125#10#10#84#114#105+
+  #103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83+
+  #67#79#82#69#32#123#10#32#32#83#99#111#114#101#65#99#116#105#111#110#32#105+
+  #115#32#34#97#99#116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101+
+  #32#111#102#102#115#101#116#32#48#59#10#32#32#83#99#111#114#101#67#111#117+
+  #110#116#32#105#115#32#34#99#111#117#110#116#34#32#116#121#112#101#32#117#98+
+  #121#116#101#32#111#102#102#115#101#116#32#49#59#10#32#32#83#99#111#114#101+
+  #84#101#97#109#32#105#115#32#34#116#101#97#109#34#32#116#121#112#101#32#117+
+  #98#121#116#101#32#111#102#102#115#101#116#32#50#59#10#32#32#83#99#111#114+
+  #101#67#111#110#32#105#115#32#34#99#111#110#115#111#108#101#34#32#116#121+
+  #112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#51#59#10#32#32#83+
+  #99#111#114#101#77#115#103#32#105#115#32#34#109#101#115#115#97#103#101#34#32+
+  #116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#52#59#10+
+  #125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82+
+  #73#71#71#69#82#95#77#69#83#83#65#71#69#32#123#10#32#32#77#101#115#115#97+
+  #103#101#75#105#110#100#32#105#115#32#34#107#105#110#100#34#32#116#121#112+
+  #101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#48#59#10#32#32#77+
+  #101#115#115#97#103#101#83#101#110#100#84#111#32#105#115#32#34#115#101#110+
+  #100#116#111#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
+  #101#116#32#49#59#10#32#32#77#101#115#115#97#103#101#84#101#120#116#32#105+
+  #115#32#34#116#101#120#116#34#32#116#121#112#101#32#99#104#97#114#91#49#48+
+  #48#93#32#111#102#102#115#101#116#32#50#59#10#32#32#77#101#115#115#97#103+
+  #101#84#105#109#101#32#105#115#32#34#116#105#109#101#34#32#116#121#112#101+
+  #32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#48#50#59#10#125+
+  #10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71+
+  #71#69#82#95#68#65#77#65#71#69#32#123#10#32#32#68#97#109#97#103#101#86#97+
+  #108#117#101#32#105#115#32#34#97#109#111#117#110#116#34#32#116#121#112#101+
+  #32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#48#59#10#32#32#68+
+  #97#109#97#103#101#73#110#116#101#114#118#97#108#32#105#115#32#34#105#110+
+  #116#101#114#118#97#108#34#32#116#121#112#101#32#117#115#104#111#114#116#32+
+  #111#102#102#115#101#116#32#50#59#10#125#10#10#84#114#105#103#103#101#114#68+
+  #97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#72#69#65#76#84#72#32+
+  #123#10#32#32#72#101#97#108#86#97#108#117#101#32#105#115#32#34#97#109#111+
+  #117#110#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102+
+  #115#101#116#32#48#59#10#32#32#72#101#97#108#73#110#116#101#114#118#97#108+
+  #32#105#115#32#34#105#110#116#101#114#118#97#108#34#32#116#121#112#101#32+
+  #117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#59#10#32#32#72#101+
+  #97#108#77#97#120#32#105#115#32#34#109#97#120#34#32#116#121#112#101#32#98+
+  #111#111#108#32#111#102#102#115#101#116#32#52#59#10#32#32#72#101#97#108#83+
+  #105#108#101#110#116#32#105#115#32#34#115#105#108#101#110#116#34#32#116#121+
+  #112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#53#59#10#125#10#10+
+  #84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69+
+  #82#95#83#72#79#84#32#123#10#32#32#83#104#111#116#80#111#115#32#105#115#32+
+  #34#112#111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110+
+  #116#32#111#102#102#115#101#116#32#48#59#10#32#32#83#104#111#116#84#121#112+
+  #101#32#105#115#32#34#116#121#112#101#34#32#116#121#112#101#32#117#98#121+
+  #116#101#32#111#102#102#115#101#116#32#56#32#101#110#117#109#32#84#114#105+
+  #103#103#101#114#83#104#111#116#59#10#32#32#83#104#111#116#84#97#114#103#101+
+  #116#32#105#115#32#34#116#97#114#103#101#116#34#32#116#121#112#101#32#117#98+
+  #121#116#101#32#111#102#102#115#101#116#32#57#32#101#110#117#109#32#84#114+
+  #105#103#103#101#114#83#104#111#116#84#97#114#103#101#116#59#10#32#32#83#104+
+  #111#116#83#111#117#110#100#32#105#115#32#34#115#105#108#101#110#116#34#32+
+  #116#121#112#101#32#110#101#103#98#111#111#108#32#111#102#102#115#101#116#32+
+  #49#48#59#32#47#47#32#110#101#103#98#111#111#108#33#10#32#32#83#104#111#116+
+  #65#105#109#32#105#115#32#34#97#105#109#34#32#116#121#112#101#32#98#121#116+
+  #101#32#111#102#102#115#101#116#32#49#49#59#10#32#32#83#104#111#116#80#97+
+  #110#101#108#73#68#32#105#115#32#34#112#97#110#101#108#105#100#34#32#116#121+
+  #112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#50#59#10#32#32#83+
+  #104#111#116#73#110#116#83#105#103#104#116#32#105#115#32#34#115#105#103#104+
+  #116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
+  #116#32#49#54#59#10#32#32#83#104#111#116#65#110#103#108#101#32#105#115#32#34+
+  #97#110#103#108#101#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111+
+  #102#102#115#101#116#32#49#56#59#10#32#32#83#104#111#116#87#97#105#116#32+
+  #105#115#32#34#119#97#105#116#34#32#116#121#112#101#32#117#115#104#111#114+
+  #116#32#111#102#102#115#101#116#32#50#48#59#10#32#32#83#104#111#116#65#99#99+
+  #117#114#97#99#121#32#105#115#32#34#97#99#99#117#114#97#99#121#34#32#116#121+
+  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#50#59+
+  #10#32#32#83#104#111#116#65#109#109#111#32#105#115#32#34#97#109#109#111#34+
+  #32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32+
+  #50#52#59#10#32#32#83#104#111#116#73#110#116#82#101#108#111#97#100#32#105+
+  #115#32#34#114#101#108#111#97#100#34#32#116#121#112#101#32#117#115#104#111+
+  #114#116#32#111#102#102#115#101#116#32#50#54#59#10#125#10#10#84#114#105#103+
+  #103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#69#70#70+
+  #69#67#84#32#123#10#32#32#70#88#67#111#117#110#116#32#105#115#32#34#99#111+
+  #117#110#116#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
+  #101#116#32#48#59#10#32#32#70#88#84#121#112#101#32#105#115#32#34#116#121#112+
   #101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#50#59#10#32#32#70#88#67#111#108#111#114#82#32#105#115#32#34#99#111#108+
-  #111#114#114#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
-  #101#116#32#51#59#10#32#32#70#88#67#111#108#111#114#71#32#105#115#32#34#99+
-  #111#108#111#114#103#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102+
-  #102#115#101#116#32#52#59#10#32#32#70#88#67#111#108#111#114#66#32#105#115#32+
-  #34#99#111#108#111#114#98#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#53#59#10#32#32#70#88#80#111#115#32#105#115#32#34#112+
-  #111#115#105#116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101#32+
-  #111#102#102#115#101#116#32#54#59#10#32#32#70#88#87#97#105#116#32#105#115#32+
-  #34#119#97#105#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111+
-  #102#102#115#101#116#32#56#59#10#32#32#70#88#86#101#108#88#32#105#115#32#34+
-  #118#101#108#120#34#32#116#121#112#101#32#98#121#116#101#32#111#102#102#115+
-  #101#116#32#49#48#59#10#32#32#70#88#86#101#108#89#32#105#115#32#34#118#101+
-  #108#121#34#32#116#121#112#101#32#98#121#116#101#32#111#102#102#115#101#116+
-  #32#49#49#59#10#32#32#70#88#83#112#114#101#97#100#76#32#105#115#32#34#115+
-  #112#114#101#97#100#108#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#49#50#59#10#32#32#70#88#83#112#114#101#97#100#82#32+
-  #105#115#32#34#115#112#114#101#97#100#114#34#32#116#121#112#101#32#117#98+
-  #121#116#101#32#111#102#102#115#101#116#32#49#51#59#10#32#32#70#88#83#112+
-  #114#101#97#100#85#32#105#115#32#34#115#112#114#101#97#100#117#34#32#116#121+
-  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#52#59#10#32+
-  #32#70#88#83#112#114#101#97#100#68#32#105#115#32#34#115#112#114#101#97#100+
-  #100#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#49#53#59#10#125#10
+  #32#49#59#10#32#32#70#88#83#117#98#84#121#112#101#32#105#115#32#34#115#117+
+  #98#116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102+
+  #102#115#101#116#32#50#59#10#32#32#70#88#67#111#108#111#114#82#32#105#115#32+
+  #34#99#111#108#111#114#114#34#32#116#121#112#101#32#117#98#121#116#101#32+
+  #111#102#102#115#101#116#32#51#59#10#32#32#70#88#67#111#108#111#114#71#32+
+  #105#115#32#34#99#111#108#111#114#103#34#32#116#121#112#101#32#117#98#121+
+  #116#101#32#111#102#102#115#101#116#32#52#59#10#32#32#70#88#67#111#108#111+
+  #114#66#32#105#115#32#34#99#111#108#111#114#98#34#32#116#121#112#101#32#117+
+  #98#121#116#101#32#111#102#102#115#101#116#32#53#59#10#32#32#70#88#80#111+
+  #115#32#105#115#32#34#112#111#115#105#116#105#111#110#34#32#116#121#112#101+
+  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#54#59#10#32#32#70#88#87+
+  #97#105#116#32#105#115#32#34#119#97#105#116#34#32#116#121#112#101#32#117#115+
+  #104#111#114#116#32#111#102#102#115#101#116#32#56#59#10#32#32#70#88#86#101+
+  #108#88#32#105#115#32#34#118#101#108#120#34#32#116#121#112#101#32#98#121#116+
+  #101#32#111#102#102#115#101#116#32#49#48#59#10#32#32#70#88#86#101#108#89#32+
+  #105#115#32#34#118#101#108#121#34#32#116#121#112#101#32#98#121#116#101#32+
+  #111#102#102#115#101#116#32#49#49#59#10#32#32#70#88#83#112#114#101#97#100#76+
+  #32#105#115#32#34#115#112#114#101#97#100#108#34#32#116#121#112#101#32#117#98+
+  #121#116#101#32#111#102#102#115#101#116#32#49#50#59#10#32#32#70#88#83#112+
+  #114#101#97#100#82#32#105#115#32#34#115#112#114#101#97#100#114#34#32#116#121+
+  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#51#59#10#32+
+  #32#70#88#83#112#114#101#97#100#85#32#105#115#32#34#115#112#114#101#97#100+
+  #117#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
+  #32#49#52#59#10#32#32#70#88#83#112#114#101#97#100#68#32#105#115#32#34#115+
+  #112#114#101#97#100#100#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
+  #102#102#115#101#116#32#49#53#59#10#125#10
 ;
\ No newline at end of file
index 9d6a9a2ef4f2f85bbfbafd248fd6a93235fbda91..c71250ce9ee8bc4697133ee8960465739b57f537 100644 (file)
@@ -895,7 +895,7 @@ var
   ainternal: Boolean;
   omitdef: Boolean;
   defstr: AnsiString;
-  defint: Integer;
+  defint, defint2: Integer;
   hasdefStr: Boolean;
   hasdefInt: Boolean;
   hasdefId: Boolean;
@@ -903,6 +903,7 @@ var
   lebs: TDynField.TEBS;
   unique: Boolean;
   asmonid: Boolean;
+  defech: AnsiChar;
 begin
   fldpasname := '';
   fldname := '';
@@ -916,6 +917,7 @@ begin
   omitdef := false;
   defstr := '';
   defint := 0;
+  defint2 := 0;
   hasdefStr := false;
   hasdefInt := false;
   hasdefId := false;
@@ -997,6 +999,14 @@ begin
             hasdefInt := true;
             defint := pr.expectInt();
           end;
+        pr.TTDelim:
+          begin
+            hasdefInt := true;
+            if pr.eatDelim('[') then defech := ']' else begin pr.expectDelim('('); defech := ')'; end;
+            defint := pr.expectInt();
+            defint2 := pr.expectInt();
+            pr.expectDelim(defech);
+          end;
         else
           raise Exception.Create(Format('field ''%s'' has invalid default', [fldname]));
       end;
@@ -1050,8 +1060,13 @@ begin
   end;
 
        if hasdefStr then self.mDefUnparsed := quoteStr(defstr)
-  else if hasdefInt then self.mDefUnparsed := Format('%d', [defint])
-  else if hasdefId then self.mDefUnparsed := defstr;
+  else if hasdefId then self.mDefUnparsed := defstr
+  else if hasdefInt then
+  begin
+         if (mType = TType.TPoint) then self.mDefUnparsed := Format('(%d %d)', [defint, defint2])
+    else if (mType = TType.TSize) then self.mDefUnparsed := Format('[%d %d]', [defint, defint2])
+    else self.mDefUnparsed := Format('%d', [defint]);
+  end;
 
   self.mHasDefault := (hasdefStr or hasdefId or hasdefInt);
   self.mPasName := fldpasname;