From 5bca4ba6a2e14ea1555e75b881ee286dca4a02a1 Mon Sep 17 00:00:00 2001 From: mbirth Date: Wed, 8 Dec 2004 09:40:48 +0000 Subject: [PATCH] Initial Revision --- SmartPatcher.cfg | 38 ++ SmartPatcher.dof | 140 +++++ SmartPatcher.dpr | 14 + SmartPatcher.txt | 43 ++ USmartPatcher.dfm | 1469 +++++++++++++++++++++++++++++++++++++++++++++ USmartPatcher.pas | 349 +++++++++++ 6 files changed, 2053 insertions(+) create mode 100644 SmartPatcher.cfg create mode 100644 SmartPatcher.dof create mode 100644 SmartPatcher.dpr create mode 100644 SmartPatcher.txt create mode 100644 USmartPatcher.dfm create mode 100644 USmartPatcher.pas diff --git a/SmartPatcher.cfg b/SmartPatcher.cfg new file mode 100644 index 0000000..9d13f67 --- /dev/null +++ b/SmartPatcher.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/SmartPatcher.dof b/SmartPatcher.dof new file mode 100644 index 0000000..f01e3ac --- /dev/null +++ b/SmartPatcher.dof @@ -0,0 +1,140 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription=SmartPatcher for new versions of cracked software. +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages=vcl;dclOfficeXP;vcldb;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=1 +MajorVer=1 +MinorVer=0 +Release=0 +Build=5 +Debug=0 +PreRelease=0 +Special=1 +Private=0 +DLL=0 +Locale=1033 +CodePage=1252 +[Version Info Keys] +CompanyName=riddick +FileDescription=SmartPatcher for new versions of cracked software. +FileVersion=1.0.0.5 +InternalName=SmartPatcher +LegalCopyright= +LegalTrademarks= +OriginalFilename=SmartPatcher.exe +ProductName=SmartPatcher +ProductVersion=1.0.0.0 +Comments=SmartPatcher for new versions of already cracked software. +SpecialBuild= +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; diff --git a/SmartPatcher.dpr b/SmartPatcher.dpr new file mode 100644 index 0000000..a420bef --- /dev/null +++ b/SmartPatcher.dpr @@ -0,0 +1,14 @@ +program SmartPatcher; + +uses + Forms, + USmartPatcher in 'USmartPatcher.pas' {FPatcher}; + +{$R *.res} + +begin + Application.Initialize; + Application.Title := 'SmartPatcher'; + Application.CreateForm(TFPatcher, FPatcher); + Application.Run; +end. diff --git a/SmartPatcher.txt b/SmartPatcher.txt new file mode 100644 index 0000000..c778b7c --- /dev/null +++ b/SmartPatcher.txt @@ -0,0 +1,43 @@ +SmartPatcher by riddick +======================= + +P U R P O S E + +Let's say, you have downloaded a cracked version of CoolApp 1.0. You have the +original program file CoolApp.exe and a cracked one CoolApp.cracked.exe . But +now there's version 1.2 out and you don't have a crack for it. What do you do? + +SmartPatcher is the solution! It analyzes the changes made by the cracker to +the v1.0 files and tries to apply the same changes to the new file. This works +with *almost any* application if the versions don't differ too much. + + + +U S A G E + +Staying with the previously created example, you would select your original +CoolApp.exe of version 1.0 as the "Original file", the cracked one as "Modified +file" and the new version 1.2 of CoolApp.exe as "New file". Now click on +"SmartPatch!" and take a look at the Messagebox. If you see some error lines +about not finding the appropriate location, try to check "Extended Search" on +your next try. (Restore the backup first.) Extended Search will do some more +searching which could take much longer with huge files. + + + +L I M I T A T I O N S + +Although it worked in most cases for me, there can be files where it doesn't. +Be warned that you use this software on your own risk. If you damage your +files, your computer or whatever - don't blame me. + + + +C O N T A C T + +If you want to contact me, do so through the forum at www.p800stuff.com. My +username there is "riddick". + + + +-riddick diff --git a/USmartPatcher.dfm b/USmartPatcher.dfm new file mode 100644 index 0000000..95945af --- /dev/null +++ b/USmartPatcher.dfm @@ -0,0 +1,1469 @@ +object FPatcher: TFPatcher + Left = 192 + Top = 107 + AlphaBlend = True + AlphaBlendValue = 230 + BorderStyle = bsSingle + Caption = 'SmartPatcher' + ClientHeight = 433 + ClientWidth = 538 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + Icon.Data = { + 0000010001002020040000000000E80200001600000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007000000000000000000000000000070000000000000000000000 + 0000000000007000000000000000000000000000700000000000000000000000 + 0000000000070000000000000000000000000007000000000088000000000000 + 0000000000700088008880000000000000000070008080088008880000000000 + 0070000007088800880088800000000000000000008888800880088800000000 + 0008887000088888008800888000000700887088800888888008800888000000 + 0087088880008888880088008880000008708888880088888880088008880000 + 0708888888008888888800880088000000880088880088888888800880880000 + 0808870888008888888888080880000700808700700788888888808088000000 + 0008088700088888888808088000000000000000008888888880808800000000 + 0070000078088888880808800000000000000000888088888080880000000000 + 0000000008888888080880000000000000000000008888808000000000000000 + 0000000000088800000000000000000000000000000080000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FFFFFFFFFFFFFFFC7FFFFFF87FFFFFF87FFFFFF0FEFFFFF0EC7FFFE1C03FFFE1 + 001FFFC0000FFC000007F8000003F0000001E0000000E0000000E0000000E000 + 0000E0000000E0000000E0000001F0000003F8000007FC00000FFFE0001FFFF0 + 003FFFF8027FFFFC17FFFFFE3FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF} + OldCreateOrder = False + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 40 + Top = 8 + Width = 158 + Height = 31 + Caption = 'SmartPatcher' + Font.Charset = DEFAULT_CHARSET + Font.Color = clNavy + Font.Height = -27 + Font.Name = 'Times New Roman' + Font.Style = [fsBold, fsItalic] + ParentFont = False + end + object Label2: TLabel + Left = 96 + Top = 40 + Width = 45 + Height = 13 + Caption = 'by riddick' + Enabled = False + Transparent = True + end + object ImgLogoRiddickTop: TImage + Left = 256 + Top = 0 + Width = 286 + Height = 66 + AutoSize = True + Picture.Data = { + 07544269746D617098480000424D984800000000000036040000280000001E01 + 000042000000010008000100000062440000120B0000120B0000000000000000 + 000000000000FFFFFF00DBDAFB00D2D1E900D1CEF600D4D2EE00DDDBF500D2CE + F200CECAEE00D6D2F600CFC9F700C3BEE800D2CEEE00DAD6F600D6D2F200CBC5 + ED00CEC9EA00DAD6F100D2CAF200D6CEF600D5CBFA00DDD4FB00D6CEF200D2CA + EE00DAD2F600E3DCFB00D2CAEA00D6CEEE00DED6F600DAD2F200D6CAF600D4C6 + F400D6CAF200DACEF600DED6F200D8D0EA00D4C6EE00DACEF200D6CAEE00DED2 + F600DDCCFB00DACAF600CFC1E800DAC6FA00DACDEE00D6CAEA00E2D6F600DED2 + F200E5DAF600DACAF200DECEF600E5D6FA00DECEF200E2D2F600D6CAE600E2D6 + F200DECAF600DAC4F200E4CEFC00DECAF200E2CEF600DECDEE00E6D6F600E2D2 + F200E2CAF700DBC6ED00E0D3EC00E2CEF200E6D2F600E2CAF200E6CEF600EEDC + FA00E6C6FA00EBDBF500E2C6F200E6CAF600EBCEFA00EDD3FA00E6CEF200EAD3 + F600E7D2F200E6CAF200E8D6F000EBCEF500E4CCED00F3D3FA00EFD3F500FADD + FA00FAD2F900022C3A00039CD6000392D100023349000293D8000386C8001292 + D2001B98D7002C99D2000293E000028CDB00028CD5000286D1000888D1000B92 + D9000E81C3000286D6000282D100027CC400036DAE000680CD000D78BA001490 + DE002F9EE200389AD6000284DB000282D600027ED200027BCD000274C4000271 + BB0002365A00022C48000982D7000C80CE001385CF001879BB001A7FC500479D + D900027DDA00027AD600027ED600027AD200035DA00003467800087ED700087A + D1000F85E0000F79CB000A568D000E64A5001E84CF00268CD5002A85C6005EA9 + DE000276D6000276D2000274CD00026CC4000266BB00024F8E000362AC000238 + 6600077AD6000876D0000B6FC4000E6AB5000E5D9B00197DD100176BAD003B8E + D100367DB9004E96D3004C86B6005B9FD7000274DB000272D6000272D200026C + CC0003529B00022E55000676D6000870D0001077D3002673B500326B9E00659D + D1006FA5D7007BAEDC008AB8E000026CD4000263C2000256AA000876DE000F6D + CC00026CDB000265D3000262CD00025CB9000246930002418600023B7B000237 + 71000A6CDA000D72E2000C6ED6000A5CB6000D66C7000C498B00176CC5002462 + A600538CC8000254B800022F6300186DD200226FCB002777D300347ED300025E + D4000257C800024AA5000A53AF000D62D2000C3B7B00184E9200024AB3000242 + 9B00023C8E0093B2E000A5C1E800447CD4006B98DC007DA1D8008DABDC009CB6 + DF00023FA60084A5E100B2C5E7000345C100BCCEF000A2B7E200BFCBE700CED7 + F800CBD4F200C9D0EA009DAAE300B2BBE700BDC4ED00CDD2EE00D5DAF500D2D6 + F100E0E3F700ACB2E300C8CDF300BFC3E500CACEEE00D6DAFA00C7C9EE00D5D6 + FA00C8C9E900CBCCE500D2D2F600CECEEE00D6D6F600D2D2F200CECEEA00D6D6 + F10000130C0C1B2C2C2C1B1B1B2C2C1B051B2525251B05000F1B0B25000D1DFB + 035457AF8D9F8E8E8C89CE0005DB0057CECECDCBABB3B3997C7C7B7B6D8CA1B1 + D9E5DFDFE5EBEBE5E5AF85BE8585BD848495BDBD9CAFAFA1A18D655B776EB1E4 + E48E93B4935D5D77B5B594A793D1D1BBBBBBD1BDBCB468BC9CA1A3B2AFD4A9CA + BED1C9BACFCFB90005D00015B9B9BACFD0B4BAB9A76DB5C9B9D0B49494A7A7A7 + BA0004CF0020B9B9B3756A6B6B5E6D8C7B5E7C617DB57C6EA89FA3A3A38F8F8F + 7F61717F8C9106A504B30012A6A7A7BAB49696848484A89595958477D1A806D7 + 000CE0E0BCBDBFBE959676746964055B000564646575A7000493000E76929292 + 7693939394BBBBB493A7000000170C0C1B2C2C2C0C1B1B2C2C250E1D25253416 + 051B051B05000B1B012C0B25000CEDE85458B17ECE8E8E8C9DCE06DB001DCECD + CDACC2B9A67B7C7C688EAFDED9DEDED9DFDFE5E5F1E5DAB1AE85850004BD0035 + BE8AB0B1B0B0A161666B96A3DAE2A37693935F70669696BB9392BBD7A8BBBBC9 + D7BED89477BCBE9C8EA0C8C7D8E0E0E0D6D0CFCFD00004E3003AD0B9B9BAD0D0 + D0BABAA776D7B5A7A7B49494939393BACFCFBABAB9B3A6756A756B5E7B8C7C6D + 7C8D84A87E7DD8A08FA3A38F8F8FA361717F8D8305A50017B3B3B3A6A6A6A7A7 + A7939496968484A8A895846C77D1A80006D7000DE0D7BCBE97CABEA89492695B + 5B00065D0015657593B4939393769292927693939494BBBBB493A70000000013 + 0C0C1B2C2C2C1B1B1B2C2C250E251D34340E0E00101B012C0625000F2C25252C + 1BE83D58DA8E7E7E8C8CCE0008DB004BCECDCBC2B9A6757B7C9FB0D9E5D9B2B2 + DED9E5DFDFE5E5D9E5DAC88ABEBEBDD4D4AFB1DDB1B0A1715E96C8E2DAB17780 + B4687F8F7DBB94947492C9D7A8B5BBB5D8BEBDD1B5D8D1D1E0D6D6000AE3003E + E0E3D0D0D0B9B9BAD0E3D0BABAA787D1A87691B4949B9A9A93BACFBABABAA7A6 + 916B6D7575667C8C7C7B8C8EA8A86E7DBEA08FA3A38F8F8FA3719F9F8D8305A5 + 04B30013A692ABA7A7A79394968484A8A8A8967794D1D20006D7000CE0D7BCBE + 78A9CABED193735D055A00175D64659293B4939393767692927693939494BBBB + B49392000000061B000C050E0E25252C2C2C25251D2504160007252C2C1B1B0C + 1B00052500710C0C1B1B251D252C2525252C1A1A1A0C3EE28E77656DCE8E9D86 + ACCDDBC8DBDBCDCBC0B9B9A7CEDCE1E1E1DEDEDED9D9DFDFE5EBF1E5DFD9D9DF + D9AE85BF85C8B2DEDEB1B0A3716EC8E2F3B2C6A693CCB2B27FBB94BB756492D1 + B5B5E3B585978585C5D7D6BAD0D0CFB9CFD0CFCFCFD0E30004E00007D6C9E3D0 + CFCFCF0004D0000DBABAA5C9BE76B7C69BCCC6C4A70005BA0015A7AC9D6B6B75 + 6D7C7C7B7B7B8DADA8A87777859E8F0004AF003EB08FA3A17F717C909090A5A5 + B3B3B8B3A699CCCCCCCBCBC496968484846C6C7794BBD6D1D7D7D7BCBCD7D7D7 + BE787979A9BE8475695D5D5A5A5A5D6475930494019301760492000993939494 + BBBBB493A7000000000D26261B2C2C1B0E1B2C2534252C000425061600062C1B + 1B1B0C1B052500051B0C1B1B2C000725001E1B0C0C1B1B2E09DDAD766B879DCD + CD8D9DDBDBCDABA7A7C6DBDCE1DEDDE104DE003AD9D9DFDFE5E5DFE5E5DFD9DE + DFDAAF8AA2DFD9B2B0B1B0DC9FAF1E41E2AD9493BBB0DAB29B94946E705F93D6 + C3BBB484859785BDBCC9A7B9B9B304B90009BAB9B9B9BAD0D0D6D60004E30003 + D0CFB90005D00025BAA7BBBF9693CDCCC6C6C4A7A7B9BABABAA7999D6B6B756D + 7C7C7B6D7B8D9BA8956C6CBF9E0005A3003D8F8FA3A17F7F8C909090A5A5B3B3 + B9B3B3ABCCCCCCCBCBC4BB96B5966C776C7794B4C9E0D7D7BCBCBCD7D7D7BE78 + 7979A9CABD96766563636464646D76000594019301930492000993939494BBBB + B4A79200000001260126042C00170E1D2534342C2C2C252525160E160E16162C + 1B1B1B0C0C000525000C0C0C1B1B1D2525252C252525051B005D3D4E4D0FAF8E + 898391A7CBCDCECDCC8E9FA1E1EAEAEADEDDDDDDDED9DEDEDED9DFDFDFD9DFDF + E5DFD9E5DFDFDFB2E5E5B1C8AFE1B1F13434F2A0947794A1B2B1A09494947F8F + 8DBBBBBB9393A8BFBFBED8D1BAB8CFB8B3A5A5A6B3A7B90004B30007A7BAD0D0 + E3E3D00004BA0029D0E3D0D0D0BAB4D8D86BCCDBC6C6C4A7A7B9BAB9A7A7899D + 6B756A6D7B7B7B6D7B8D968495966CBF9C0006A3003BAFA3A37F7F8DACACAA90 + A5B3B3B9B9B3ABCCCCCCCBCBB7A7B4BB947777779493B4D6E0D7D7D7BCBCD7D7 + D7BE78797979A9CABEA89476929181757600069400099393A792929293939400 + 04B401A701920000062C002025253434342C2C2C2525251605070707162C1B1B + 1B0C1B252C2525250C0C1B160825051B0020FBFD3B460DDFEAEADDE1E1DDDDDD + EAF1F1F1DFEAEAE1DCDCE1E1DDDEDEDDE1DE06D90041DFE5E5DFDFE5DFD9F1E5 + AF7F9FCEE25757ECA0949496A1B2B19FB593949FB28F6E94BBBB927795BFBFBD + D7C9B9CFCFB9BAB3A5B3B3B3B9B3A5A590A5B3B3B9CFCF0004B9002BBABAD0D0 + D0BABABAA8BE9E9ACECCC6C6A7A7B9B9B9A7AB899D6B756A6D7B6D7B6D7C8C84 + 8495848497847F0005A3003CAFAFA3A1A19FCDCD9DACACA6A7B9B9B9ABCCCCCC + CBCBB7B9A7939276776C9492B4D6E0D7D7D7BCBCD7D7D7BE787959795979A9BF + BEBCB5BBB49394BB0694000893A792929293939304B401A701920000012C012C + 043D001725343434432C1B2C252525050707070C072C1B1B0C0C0C0005250004 + 0C0C1B0E0725012C051B0096E8E903231D0FDDAFB0B2F10BF1F1EBF1F1EAE1DC + C8C8C8DCDCE1E1DDDDDDE1DEDED9D9B2B2D9DFDFDFE5E5D9E5E5E5DEB09F6B92 + 8FE747B16E939EAFDFB2C896B4BB898FB2A1BB93B4746D9BBEBF85BDB5BAB9CF + B9B9B9BACFB9B9B8B3A5909091A6A5A5A5B3A6B3B3A5A5B3BACFD0D0BABABA6C + BDD49BB7CDC6C6A7BAB9B9B9A799899D6B756A6D6D756D7B8D6884A8BDA88497 + 8A7F05A30006B0AFA3A1A19F04CD00259D99A6B9B9B9B3CCCCCCCBCBCBB9C29D + 7677776C9392B4C9D1D7D7D7BCBCD7D7D7BE78797900055900055C97BEBCD100 + 04BB05940008937692929293939304B401A701920000062C00072534343D3434 + 2C0004340008250E16160E162C1D041B00082525252C251B1B1B0725002C1D2C + 1B1B1B1625070505050C0935EBAFA3B08FA17F7161619F9FA18F8FA1DCDCC8DC + E1DDDDE1DEDEDED9B2D908DF0026E5DFDDA38E66627C8EA2E5B28EB1E2E5A196 + 94B49A7F8F9F94939489676DA8BEBEBDA8BBBAB904B30008CFD0CFB8B3B3B3A5 + 0490000B81909283A6B38180A5A7B90004D00024BA93A8BFA89ACCCEC6B7ABBA + A7A792998989897B7C7C7C7B757B8D9B8495BD8A95CA957F08A3000FA19F9FCE + CECECDCD99A6B9B9B9B3B70004CB0019B7CC9F8D777777949492A6B4D6E0E0D7 + D7BCD7D7D8BE785C5C00055900095C7885BDBCB5BBBBBB000494000F93937692 + 9292A7939393B4B493A792000000062C06340543043400072F2F1D25251D1D00 + 092500062C25251D251D0C2500251D252C554DF1AF7FE1D9B18F7FA1C8A2AD9C + 689FAFB0C8C8E1E1DDDDE1DED9D9EAE5E5DFD90004DF0042B2B0D9E4A35F6394 + D1B59EB0F049ECAF9B96967EA18F7176B4B46E7F706BBEBEBCBBA7B3A5A5A681 + 81B3CFBAB9B3B3A5B3B3B3A5A481808291838190818081A6A7BA04D00012BAC3 + BDBE8B7EDBCEC6A7B9A69292756D6D9D048C000D9D757C8D969695BE8A85CA95 + A10004A3003EA1A1A37F7F719F9FCECECDCDABB3B9B9B9B3A7BAB3C0A7CCAF7F + 8977777794937580BAD6E0E0D1D7A8BCBCD8BE785C5C5C795959595C97BEBCD1 + B5B5B5BB049401930193059201A701A7049302920000062C07340004433F4343 + 06340005251D251D1D000525012C072500031D251D000D250057433D2733EBC8 + 8E8E9F9D6D77A88495BC96A89C9FB1DC9FDCE1E1DDDDDEDED9EADFD9DEDED9E5 + B2B0E51C4930B16894D6D2948EDA57EB9E8496ADDCB07F76939394718F8FBC85 + BED1A7A4B8A4A5908081B3B9B3B3B8A5B30004B90024B3908180808181827372 + 8291A6B9BABAD0D0CFB7B5BDBD9E7ECECEC4BA929275756D7C9D048C000D7C6A + 7C8C969695BF8585CABDA10004A3003EA1A1A17F7F719F9FCECECDCD99A6B3B9 + B9B3B9B3B3B4CDDCDCA18976777794766982A7D0D6D6D1D1D1BCD7D8BE785C5C + 5C795959595C97BEBCD1B5B5B5BB049401930193069201A7049302920000062C + 0634000C433F43344334342F3434341D0425011D0E25011D0A25005A2C25252C + 50542C33098F687674ACD28484A8A8BCA8A8BC9EA18FDCDCDCE1E1DDDDDED9D9 + DEDED9B2B2DEF24752471C19F68E778C7A9268A0B0B16EA0EAB28F7D93B4967C + 707F9EBE85BDD6D3CFCFB9B3B9B3BAA7A5A5A59090B305B9000DB3B381808073 + 736963697490B30004BA0023B9B3B4A8BEBD6ECECECEC493926D6D6B6B8C8C8C + 9D8C7C7B8C7E849685CA9778A985A10004A304A1003A9F719F9FCECECDCD99A6 + B3B3B9A7B8B393CEDCDDDCA17C7677779492697391B3D0D6D6E0D7BCD7D8BE78 + 5C5C5C795959595C97BEBCD1B5B5B5BB0494000F939392929291919292929393 + A79275000000062C0934013F0734000525251D251D00062500072C252C252525 + 1D000425011D0625042C004A2516262F2F413B4DDA616E6CA8A884A8A8A89CA8 + A8959CA2B1DDAFDCDDE1DDE1DED9DEDEDDDDDFEB12522209124D57048F5E6A92 + B4BBC3C8E2FCE4B17D7794BB8E7F717DD8C59596BAD005E3000AD0B990818181 + 9090B3B305B90033B3B3818073696963636980B3BABACFB9B9BAA5C9BCBE95AD + CECECE89997B6D6B6B8C8C8C9D8C8C7C8D6E968485A9CA78A985A10004A304A1 + 049F0029CECECECD9991A5B3B3A7BACCA1E1E1DDDCA189777777937569697480 + BAC9D6E0D7BCBCBCBE785C5C5C00045900145C97BEBCD1B5B5B5BBBB94949493 + 939292929191079201830000062C0634001043433F433F342F2F343434251D25 + 1D1D0625012C0425012C0425011D011D0625052C00901EFAEDFE2518424930DE + 8BA8A8A89684958AA88A9585BEAEAFB1AFAFDDB1E1DEDEDEB0B1EC4C07E2E2EF + 223E22FE490DB27EBBB4C3B56C8F06F2A06C77968E8F7F8EA89595C9A7A4B890 + A5B9CFBAB8A48073818281A6A5B3B3A5B3B3C0B3B3908173696963636981B3B9 + B9B9BAB4BAB9ABB5D4CAA89DCDDBCE9D896D5E6B8C8C8C9D8C8C7C8D776C84BF + A978785C85A104A30003A1A1A100059F0017CECECECD8791A5B3B3A7CEE1EAEA + EAE1DCA17C76777792000469002480BAC9D6E0D7BCD7BCBE785C5C5C79595959 + 5C97BEBCD1B5B5B5BBBB949494937692929204910492017501740000000C1B1B + 1B161616251D25251D250434000A2F2C2C25251D1D251D1D0625011D0825012C + 0925009616161B0C1B1B0E1D160C16250E2C3419F2DEA08B6E96C5C595A8846C + 7DC8B0B0DCAFB0E1DDDDDEDEE50E354F2F0EE4F80C1C273227443EE4AF9EA672 + 75777DAFB28E6CA3E1E1CEB5A89C9676A6B8B89191A6A6A68263637381818190 + A5A59090A5A5B8A5B3B3B38173696363648390A5B9BABAA7B9B9A5A7BC97BD6E + C89F7E9F9F8E685E667B7C8C8C8D5F5F776C8497787878A9BEA105A301610171 + 069F003BCECECE9DAA929ACEDCD9EAEADEE1DDDCA17E929292827373696983A7 + BAD0D6E0D8D8BDBE97A9797959595979A9BFBDBCD7B5B5B5969696BB94B49300 + 059200039192920005750000000A0C070716160E2525251D0725012C012C0625 + 00051D25251D1D000D2500092C25252C2C2525251B00050C0055161625252516 + 161617182E3315DAB1DDD9E5EADDDDE1DAD9D9D9DEDEE1B0B0DDF114353F252F + 2F2FFBE6F30B1633152E4211E7B28C6B6577B584A2DFDFDAE5C884B5A88B5F74 + A7B9B890839081827263697382818100069001A501A504B30028908273696363 + 738081B3B9B9A7B3B3B39096BEBEA0DDDB8CA1DCB0A39F7C7C8C8C8D8D617C94 + 969505780010BEA1A3A3A3AFA3A1A19F9FA1A1DBDB9F04CE01DB01DC04EA0034 + DEDEE1DDDCA3CE9292A791818274759290B3BAC9E0D7D8BDBEBFA97979795959 + 79CABFBDBCD7B5B5B5969696BB94B493A792929207750274000000060C0C0C16 + 16160525082C000625253434251D0725011D011D112500051B1B0C0C0C000716 + 00111B1B161B0C3C584C28F6E2EBEBEBE5EAF10004DE0009EAEAB2E204182125 + 2F000425002E0E0EFBF3F3E9ED11422307E7E4A26C94B49484C8F519DD8A8495 + ADA37183B3B8B8A58180727272697373738281910490003B8190A5A5B3B3B391 + 7473696463637290A6B3B3A6B3B9A78376B5BEA0DDDB8C9FDCE1E1DC9F8E7E7E + 7C8D9F8C946C957878CA78A985A1A3A3A3AFAF0005A1000A9F9F9FCECECEA1E1 + EAF105EA0007DEE1DDDCDC7F890004A700289292758381A5B9D0D6D7D7D8BDBE + CAA97979595979A9BFBDBCD7A8B5B5B59696BB949493A7929292047505740000 + 050C0005162C252C2500072C00073D3D3D3434341D00052500041D251D1D1225 + 000516160C0C0C00071600481B1B1D17172743544F2F050F0BEBF1F10BF1F10B + 1F284C3516F4ED051B161D0E1D1D161609FDE9E6EDED0505100C420DDE9E9483 + 759BA0AFEAB0AEA2B2A3CEA7B9B8B9B3B6808080057300038090910006810008 + 8090A5A5A59174720463002D7281A6A6A681A5A480737577A89EDB8D6A8CA1AF + DCDCA3A3A19F8E8EC87E946C8578CACAA9A985A1A3A3A3AFA300047F000D9F9F + 9FA1A3DDEAD9D9EAEAEADE0004EA0007E1E1DCA39F99920004A7002B91828282 + 92A7D0E3E0D7D8BDBDBF78A979595979A9BFBDBCD7A8B5B5B5969696BB949393 + 929292758383830005740000050C011B052C052500072C3B3B34344334000625 + 00051D1D25251D001025012C0116040C0050161B1B161B1B1B16160E17171607 + 050305163C3E33444D554F444D4D4C452C433D1BE9ED1B0E1B1B0E2525160E07 + 10F3F3E6F4ED0C3D3D1CDAA09A806B96BCC7AFE4E49FABBABAD0D0D0CFB88181 + 82820473004B81909081838181828080819090A591827263636369697491A681 + 82807280A78DA09694CE9F758CA3B0AFAFAFB0B0B0AFB0B29F94969797BDBD85 + 97BE9FA3A3A3AFA37FA1A1AFAFB0B1B2D90004EA0004DEDEEADE04EA0036DEE1 + DCA18C7692A6A7A790918181747592B9D0D6E0D7D8BDBE977879795979A997BD + BCD7D1D1B5B5B59696BB9493937692928383748305740000040C011B011B052C + 000825251D252F253D3D043400091D1D1D25251D25251D000925012C09250116 + 040C0107061B00120E1616161B202908EDFB13FBE9E8E9ED0EED05E900810E0E + 0E1D34250C0E1B1B1B251827273432F2ECE2E4E8F412F8F8EFF48F94B5969695 + 9CDAB16B7280C0A5A4C1B8B99081807369697382919181818374747372808190 + 91A68173726363636969739190807480809075B2E27D9DCEDBCDCDA1DDB0B0AF + B0B0DDDDDDB18E9484978A6C8B8A97BEA1AFAFB0B0AFAFB0DED9E5F1F1EBF100 + 0CEA0026DEDDA39F9A7691A6B3A690918391746A74A4CFD6E0D7D8D8BD9778A9 + 795979A997BEBCBCD1D105B50010969494937692928374747575747474740000 + 00040C1B1B16072500222C2C2525251D161B16252534160E1D2F2F3F4343433C + 432F1D1D25252507070505070616000C1B160C0C0C161B1B1B161616050C0012 + 070E160E160E0C0C0E0E251D1D0E160C0C0C04070043161607070505070C070E + 0E0E1D27180CF4E9E6E9FB070808EEE2A08496C3A8967C6F69635D6263728090 + A59081736973828281748281817369696973738181A681827200046300157373 + 839181908173A58E5747B1778CDBCBACA1B0DD0007B00013E17C77A89694947E + 9ECA8ADAF1EAE5DFDFE5E50004DF0003E5E5E50006EA000CD9E1EAEAEADEDDB0 + 9F94BBA704A6001D9191917575738090B3D6E0D8D8D7D7BDBECA795959A9CABE + BDBCD7D1D10005B50009BB949392919174747400066A000000040C0C1B1B0825 + 00252C2C25252516161625253416161D2F2F2F3F2F2F2F351D251D25251D0E16 + 0E160E161D1D0E00041600060C0C0C161B1B0416050C01070516000C07050E0E + 251D1D250E070C0C0707002D05070505FDFDFD0E0E1D181807E9E6F3F8091308 + F6F8E8E4AF8BA8A8D79F8D69675D647380728090908182737300058200038080 + 73000469000F7380808181736363635D6369738191000481000DA7B1491D58C8 + 6E9F98899FAFAF0007B00011DD7C96A85E6B777684BE95DDDEDED9D9E50007DF + 01E501E506EA001BD9DEEAEAEADEB1A184D7B593929191A6A692927574737290 + A7C9D60004D7000FBCBECA795979A997BEBDBCD7D1D1D10004B50009BB9493A7 + 929174747400066A00000006080C0C1B162C062500172C2525251D1B1B162534 + 3416161D2F2F2F1D2F2F1D1D1D00042500071D161D1D16161600041D0125010E + 040C0003161B1B00041600160C0C07070C0C0E160E0E160507070E251D1D1D0E + 0E050707002A0507050507FDFDFD0E0E0E09090EFDFDF4F30B0704F3F1F303EE + DAA0D8D7C6706A67636369738280808004810582002680807369636373738280 + 80817263636362636969738381AA989092E4112F5055C8939D7E9FA308B0000F + B17C84955E5E76756CBDBDAFD9B2DE0009DF01E501E506EA0013DEE1DEEAEAD9 + A39EBEBE959693A691A6A691A60004910024A6A7BAC9E0E0D7D7D7BDBFA97979 + A9CABEBDBCBCD7D7D1D1D1B5B5BB9493A79291837474066A0000000608FB080C + 0C16062500142C2C25251D161B1625253416161D2F2F2F0E1D1D080E0005251D + 25252500041D000316161600040C010706160017070507050716160E160E0E07 + 07070E1D1D25160E070C0C000707005A05050507EDEDEDFDFD0E0E0EFDFD09FC + FD070707E8E4E91B1D1CE7B0C5A85F5D5D6363637272808181A4A4A481818281 + 818172727269696973828181808072726363625D64637383748181A5CE222C0E + 4252409F7E9FA1A1B0DD04B00013DDB0B17E8495965E767796BEBDB0D9DEDEDF + EA0007DF01E501E505EA003CDEDEE1DEDFB2A37DD1BDBFBF9594A7A7A6918381 + 90A6A6928383B3D0E3E0E0D7D7BCBE97A979A9CABEBDD8BCBCD7D7D1D1D1B5BB + 9493939291757575066A00000006F4FE08080C1B062500112C2525251D161616 + 2534340E1D1D2F2F1D00060500050E070E0E0E00061D0116011D051600040C0C + 0C07041600191D1D070E050E0E0E16160E0E1605070E0E251D16161B0CFB0C00 + 060700360505070716F4F4EDFB0C07EDEDFD0C0707091808F3E2EF0616210D22 + F0E2C79467635D5D6288C2B9B9B3B8B8B8818280728282727272046900217381 + 818072B3A79183725D5D5D6974748191B9A34D2D25F9425622AFA0A1A1B0DE00 + 06B00017E17E84D5BC967D7E6CBF85DDEADEDED9D9DFDFE5E5DFDF0004E50040 + EAF1EADEE1E1DED9B27F6D92B4BCCAA9BED1B4A7A6919191B3A7A792746AB8CF + D0E3E0D7E0D7BD8597A9A9CABEBDD8D8BCBCD7D7D7D1B5BB9493939291757475 + 066A000000060808FB080C0C0A16011D0416000825250E160E1D1D1D050E0C1D + 051600090C050C0C0C0516161600070E000F0505160E160E160707050E0E0E16 + 1600040C0707000C05070705FBF4FB0C0C0CFB07040E001D18181807F8F8FE07 + FA0E1D3D06E8AF7C72636292BBE0D8BDD7D6D0C1800004690048737273737269 + 7272808282728183726369736463626983818292BADC4D3D1D1D2C2F5215DEC8 + B0B0E1E1E1DDDDDDB0B07DA8D5BCBC95A895BF85DEE5D9D9DFDFDFE5E5E5DFDF + DFE505EA003DE1DEEAEADAA35E64699395CA79CABDB5B4939291A6BABABAA681 + 83B3B9D0D0E3E0E0D7BCBDBFCAA978BFBED8D8D8BCBCD7D7D1D1BB94B4939292 + 75757500067400000608050C0017070E0E0E16160E0E0E160E16160E160E0E0E + 2F1D2F2F1D000627051D010E040701050407010C010C05070008161D250E0E07 + 050504070105050E0607000B050707050707070507070500060C010504070040 + 0E251D1D2735F8E2E9FD0916290303F08F637275B5D8BE9778CABED7C9A67364 + 64646972727373727280808073727363625D5D5D6963637281908192BAA14942 + 042F00092550470BDAB0AFEADE0004DD0004B0A0959507C50041DDDFD9DEDFF1 + E5E5DFDFE5DFDFDFEAEAD9DEDEDEEAEBEBE27F655D64769597A9A997BCD69492 + 92A7BAD0BAB3A5B3B3B9BAD0E3E0D7D7BCBCD8BF977897BEBDBDBD0005BC0007 + D1B594B4A79292000475057400000608050C0007070E0E16160E0E000516000C + 0C16160E0E0E25251D1D252F0527000C16161D16160E07070705070504070105 + 010504070009161D250E070707050500060701050907000F0505050707050507 + 05050C070C0C0C000607002C0E18161616180EF8F3F3F8EF180CEDEB9E6F7AB5 + BCBFA97878A9BFBEBDD6B9807272637273737372738082730569000F62626369 + 6969728090A691D0A1304200052F0011E9225555ECB1AFB0B1DDDDE1B1A28495 + 950006BD003EDDE5D9D9E5EADFDFE5DFE5E5DFDFDFD9EAEAEAEB0A0FEBE27F65 + 64656B9685A979CABED7B59493B4D0D0D0B4BAA7BABAB9BAE3D6E0E0D7BCBCBE + 979797BF04BD000DBCBCBCD7D1B5BBB4A7929275830005750274000000060808 + 08FB0808050C0017070E1616160E160E0E160E160C16160E0E161D161D161600 + 061D000B0E161616250E070705050500060E001607070507070E1D1D0E070C05 + 070505070705070C070C0707000C050707050507070705070705060700440507 + 07071616161D16161D1807F8E6E60D0CF0A2D88CB4BCBF785C7878A9978585D7 + E0D0A5726969727273748381827369636365636263728273727281A5A6A6D0A1 + 191D052F001F05224E5333F6E5DDAFAFAFDDE1B1B0A1C8A09E8B848484DDDFDE + D9DFE5E5E50004DF0033E5E5DFD9EAF1EC1216F3EBE27F6A6566757795A979A9 + CABE95B5BBB4D0B4B4BBD0B4BABAB9BAD0E3D6E0E0D7D7D8BEBF97BFBE0004BD + 000CBCBCD7D1B5BBB4A79292758307750000050801FB050C0107010E04160016 + 0E0E16160E160C0C1B0E160E0E16160E0E0E2525160E0716000705050705050E + 25000416000F0507050507051D1D0E050707050705000507010C010C07070003 + 050705000407010504070007050505070505050004070014160E0E0E0C070EFD + EDE9E6F3FCE2C5BCD1D1BD9704780027A997859595D8E0BA7273737263738391 + 73736963636463626281908373728090A5A5A7D09F060500052F003E2C1D110C + 2F3D1FECDFB1B0AFAFB0B1B2EADFD9D9D9DEDEDED9E5EBE5D9E5E5E5DFDFDFEA + DFDFE5DAD9EC26F8E5E2E4A16A65667A92A878795CA997BEBCB504BB0022C9C9 + C9D0BAB9B9B9BAD0D6E0E0D7D7BDBEBFBFBEBEBEBDBDBDD8D7D7B5BBB4A79292 + 0975000000060808FBFB08FB050C01070116040E00171616160E0E160C0C0C1B + 160E05070505050E0E0E1D160E000616000605050507070E051D000B16050507 + 070E1D1D0E0707000605060C070700050507070705000507060E004507050705 + 050705050C0705FDF4F8F4F4EDE2E8A2958BBCD7BE977878785C78BFA8B58585 + A8D6BA72697373738282726969635D5D5D637281B38072808080B3B3A7CFADEF + FF00052F00150707161D11FE10F3EBECEBEADFDDDDB1B1DED9D9DF0004D9004B + EAEBE5DEDFDFDFE5E5DFD9F110F2DEB0E208E6DADAECA175756D98A68497795C + 5CA9BFBDD1C9BBBBC9D6D6D6D0D0B9B3B3B9D0D6E0E0E0D7D8BEBFBFBFBEBEBE + BDBDBDD7D7B5BBB4A7929200097500000608000607070C0C0C16051B04070116 + 06070116042501160625001D1D160E2C1D0E1616160E0E0E1D1D181D1D1D160E + 0E0C0516161607050E0004250116050C0107010E041D050E0107070E051D0006 + 050505070707050C0055FBF4F4EDEDF4EFE6D5B5C3D7958597977878CACA9584 + 84BDBCA8D8D87D63728080746573736363635A5D91B6B8CF8882746980B3B9B9 + B9C30F4227252F27340C07161D0E1AF8F3E5E2ECECED31E5DEE5B2B1B1D9D900 + 04DE0053B2D9DFDAE5DFD9D9B1E55602B1C8B2E417F6E2E2DA71A7947674766C + 85A9A95C79A997BD95D1D1D1D6D6D6C9D0B39081A7D0D6D6E0E0D7BCBDBF97CA + BFBEBEBEBDBDD8D7D1C9B4937692838383919191757575000000000B08FB0808 + 08FB07070C0C0C00061B0607000905070705051625252C000825000C2C1B1B2C + 1B1B1616161D1D0E061D000B250E0E0C0507050705071600052500061B0C0C07 + 0C0C051D010E01070A0E061D040501070107050C00A4FBF4EDEDF4ED19AF849A + C3B5A895BECACA97BF95848495BE9595BDBFBD77666372746981917263696369 + A4C1D0B87283746983A6B9CFB9C9E54934252F2F2C2C1B0E1D1D0C0BECE5E5E2 + EC31E6B2EB390BF1EBEBECE2ECECE2E2ECF4E5B1B1B2EB3A47E4B2B0D9DEE21A + 0FEBE2DA61A7BB9B76766C85A9A95C5CA978BF85BCD7E0E0D6D6C9BBBA909192 + BAD0C9D6E0D7BCBDBEBFCABFBFBEBEBDBDD8BCD1C9B493939283049100049292 + 75750000000608FB08FB0808050C07160707000405070716062504160007251B + 1B1616161B00041600031D160E00061D00030E0E05000607000C0E25252C2525 + 160C0C070C0C060E00050707050707000C0E0006070505050707040C010701FB + 04F4009DFD0EAD77B59477C9D2A8C585C59CA8BCA8D8BD9C95BDBEBFCABE9666 + 627280818263697480B3BAA772888273698390B3BAB9C9C8472C252F2534250E + 161D1D0C0BECEBE5EBEC08EB7FA1EC07F4FBF6ECEBE5D9D9D9DFE2F3F3183E55 + F8B1DE2A44B1A3E2170FECE2DA8DB9B584966C8485A9A9A979A9789797BED8BC + D7E0E0E0C9BAA691A6A6B4D0C9E0D7BCD8BEBF97BFBFBFBEBEBDD8BCD1C9B4B4 + 9300059200059192927575000000000B080808FB08FB070C07070C0007160807 + 00030507160005250616060C011B0416011B011B051D0018250E05070C070707 + 05051625252C252C1B07070C070C0705040E00060C070C070C05070E00050707 + 0E0E0500040700070507070705050C0004FB00710509A2849A6765ABBBD1B58B + 8B8BD1D1D1D8D1B5D7D7D8D8CAD4BDD7BB9269636A696972A4B9B6635D889163 + 6380A5A7BAB9D07DFC34252F252F1D1D2525272C0BF6E2F1EBECE414DEA1B1B2 + DAE418333E5252494F5657554408DAB1B0DF564DDEA1B1E41008E2E2DA9FA594 + 84A8A895BF0008A90026BFBEBDBDD8D8E0D6B4B39090B3BAD0C9D6E0D7D8BDBE + BF9797BFBFBEBED8BCD1C9B4B49393A706920275000005080009FB070C0C0C07 + 16160E00041605070006050707050516052500060E0E160E160E05080018171B + 1B1616161B1B0E1D1D0E1D1D0E0E070705070705050E0525000B160C07070C07 + 050707050700070C041600090E070C0507070C0505000407007B0E160E0E0E05 + 07FD07070CEFE7AF6D6369727275BBB5E0E0D1BB946B739183737492B5D8BFBF + BEBEBC6C75697273828888A662A6A6626980A692A7B9BABBDA4F2C2F252F2F2F + 252F272C0BF6E2E2F3EC0F0FDAEBECB2B1DFEBE6E6F6F6ECEC0B08B2AF8FB1DA + 285808B2A3DFDFDAF8F6E2E2E29F816B6CB5BCBE970006A9002A795C7897BFBE + BEBDD7E0C9BAA6A6B3BABAB4C9D1D7D8BDBEBF979797BFBEBED8BCD1C9BBB493 + 9393A7A7049202750000000EFBF4FBFBF4FB070C0C0C07160E0E041605070006 + 160505070516052500061607070C0C0505080028071B1B1B1616161B1D1D1D0E + 1D250E0E07050707050707162C2C252C250C0C070C0C0C0707070C070C0C0407 + 000C05070507050707050E0E0707060E0007FDF958E25E637200046300677A86 + 837A6F625D6382697363638194A8BEBF97BFBEBC9483696981BAB381A76F6F75 + 919099ABD3B9C9B0572C2F342F2F2F3434352C0BF6E2ECF6F6F8E6B0AF0F3212 + 08F6E2E5B2B2B1B1DEDAE5EC3255572CB2B10B56B2AFE2080BE2DAE69F81656B + 94BCBFCA780004A900315C5C5CA9A9CA97BEBED7E0D6D0BAA7B3B3A6A693C9D7 + D7BDBEBF979797BFBFBED8BCD1C9BBB4B4B493A7A7A7929292757400000005FB + 060C0027FBFBFB0C0C1B1B0C070CFDFD1D1D25160C0707070C07071B1B0C0808 + FE1B16161B16162C25252C000D25000B0C0C07070C0712120707070007FB0005 + F4F4F4EDFB00040C0107010C05FB001F0C0C0C05160EFBFBFBFDFD07F4EDFB07 + 070E0E0EFF0E0EFF37EB5E6373696900046300647272727380738280A4CFCFB9 + 90636D9BD8BFBFBFBEBE956B6972B8B860706DA79090B9B3A5A7B4C8474E0948 + 2322342F342F2F0B0808F3F4F83913B27FB1DFE2E81C333E3722FF0522475749 + 09ECB2B0B2F447F161B1122D0FEBEBE261805B659194959705780031A9A9A95C + 5C5C78BFBED8D7E0D6B4A775656574A5C9D7D8D8BEBE78789797BFBFBED7E0D6 + BBBBBBB4B493A77676929291810000000C0C0022FB0C0C0C161B0C0C0C05FD1D + 2516160C0C07070C070C1616160C0C0C171B1B1B16160525061D000B16070E07 + 05070C0C0C05ED0007FB050806FB060801FB040801F401F404FB000BF4F4F4ED + EDEDF4FB0C070500060E0007112EEC5B63736A000469009B7381818381738272 + 80B3D0CFB9B991748CCD9BA8D8BEBED4BDB57C70707063919190B9B9BAA790BA + DB1C2C0E211105342C342F2FF3F6FA0807F6E626EBD9E2B2B0B2E5E2E2F8F4F6 + E6F80FEAB0B0DEEBF24D35E5B0DFE5EC1BF6EBE2E261825B5B7A756C95977878 + A978A9A9A95C5C5C7897BFD8D8D7D1B4A674646469A5C9E0D7BCBDBE97789797 + BFBFBED7E0D6BBBBBB94B493A77676929291830000000B0E0024FD070E0E1D18 + 1D0E0E0EFDFD181D1D0E0E1625160E0E162525161B0C0C1B1616160E162C0925 + 00071D0CF4FBFBF4FB0007F4000AE9F4F4F4FB0CFB0C0C0C05FB000308101000 + 040800050CFB0CFB0C0006F4000BE9E9F4F4F4ED0C0C051B1D00060E0072112E + E45B6973747369697474828282727273727290A5A4C2B3A5B3B3B3809193B5D8 + D4D4BE958A8A96937A7A90A6A6A7B4A6A6C6E61105071D03342C342F2FF30B09 + 16252026E6B0A3E2282B1FECE2B2DFDFD9B2DFDAEBF11F5755EFDAB1EC38F1DE + E20CF6EBF3E261825B5B6F636A6C95CA06A90017795C79A9A978BFBED8D1BBA7 + 9169646991BBE0D7BCBDBE0006970011BED8E0D6B5BBBBBB94B4939393A79291 + 91000000060C0516001A0C0C0C162C2516160C0CFBFB261B261710172626261B + 1B262626081700061B2C1B2C1B1B062C010C0BFB05FE010C0116040706080005 + 0C0817081700060704FB000DED0C0CFB0C0C0505051D1D1D2F00051D0079181D + 3EEC5B69827473738274827373727273727273737280BAB9B3B3B8B3B8B38183 + 929695D8BEBEBFBED8B59B75659D8793A7A694DF3003072C1B2F2F342F35262A + 2C2C2C26100EB27FB0EBF30E353E3034341D1B27475749E8E2E5B2B20C3EE5AF + B2EC10F8F3F3E261735B5B6F5D646A6CBDCA7878A9A9A900057900295C78BFBD + D7C9B4A669645D73A7C9D1D7D8BEBF97CACA7878BED8E0D1B5B5C9BBBB94B493 + 9393A79291000000001D1B16161B1B1B161B161B1B1B0C1B162525160C0CFBFB + FB2626171A101700052600043125261B051700031B1B1600062500051D1D2525 + 25000616000525251D252500041D012C011D050E000616050507070506070017 + 1616160E160E251D1D1D18181D1D2F2F221D2222222E3E00061C00082247EC5E + 728273730682009873737372726969696AA4B3B3B3A69081A6908072749293B5 + D8BEBFBEBEBDBC96B7878181BAB5DD4723182F2F272F2F353E5551432C0EF4F4 + 3DEBDAE2E5B2E5F308103D432C1A413BE5B1B0DF0F3A472FDAB1DADFE234260F + 05E661745B5B8D715F5D5EBBBD7878A9A9A97979795C5C595C78BED8D6D0B373 + 645D6399BBD1D7D8BDBFBF97787878BFD8E0E0B5B5C9C9BBBBB4939393A79292 + 000000060E0E0E1D1D1D051800121D1D2727353527272F1D1D1D25252C1B1B2C + 0625000D342525252C251D2518182725250009180B270118010E041D010E0516 + 00050E0EFD0EFD000807080E001A1D182F2F2F272F2F0D0D1C1C2E1C1C0D1D1D + 0D1D30EB5E63696904730482002B7263726363696969808190A6909190A7A7A5 + A6A68181879A94A8BCBDD4BED4BCA8947692939F4D0535353500042F003D3555 + 53341D0E17511DDEB0EC4C282908E6DAE5E5D9D9DFEBDAF1085757520BDFF63A + F1EAF60D12F82CE29F73645B6071616067758485CAA9A9A979797900045C0021 + 7897D8D7C9A78364646575B4C9D1D8BDBEBF9778A9A9BFD8E0E0D1B5B5B5C9BB + 9400049301A7019200000006FB0C0C160E0E0616000C252527273527353F4343 + 432C052600031A1A2600041B000A2C2C34341207121625310B07041D0008181D + 252525161D0706F401FB04F40006FBFBF4F4FB0806FB07F40004EDF4F4ED0605 + 060E00161D1D0E0E1B2311DA6563656569696973828082826963066900236469 + 698190A5A4A5BAB3B8B3748190A5A4A4A7BBD1BCBE85BEBDBCB5947E4FED4540 + 1D00052C005A4E3D10FDFB070831E5B0B1DFE2ED35444F4F442E27334730350E + E6DFB2DA3C4DEBDE0B0AF6E8E2F6E2616972645B606171606576B5BFA9795C79 + 7979A9A9A95CA9CABFBDD1BB93836A656574BAD6D7BDBEBF9778A9A9BFBDD7E0 + 05D10008C994B4B4B493A79200000017FB0C0C0C0E160CFBFBFB0CFBFB0C0516 + 160E0E1B1B2C2C000610012A050F00100808242424F8F81010171710100808FB + 06080C0C120800040C0808080BFB010C051B060E000D1D1D1D0E0E0E1D11E266 + 6364640004690004737273730769006263636469828190A6A6B9BAB3B3A69081 + 9090919174757694D7D7D7BC95BCAF58174534253D1D2C2C2C4E2F10FBF8F8E6 + F4DAB2DADAB2DFEBF3ECF8F8E6E6F8F8DADEDEB2DAF21CE4D9B2F60B0BF4E2E2 + DAB17C6569645B5F6061615F657795CAA95C0579001C5C795CA9CABED8D6BBA7 + 735D5D69A6C9E0C5BEBF97CAA9A9BFBDD7E005D10008B5BB9494B49393A70000 + 0006FBFB0C0C160C08F4000AFB0C070C0C0C1B1B1B1004F8070F000C08121212 + 20F81008080C0CFB050C05FB0006050E05050E05060C011B011B051600091B1B + 161B161B161B1B000616000C0E05FD0705FD0505050E0E0E091D0019221D0D0D + 0D1D1D1D1C22F2616363646463636972737369696400066300105D6469828190 + B3B3A4B9BABABAB3819004A6000FA5A5A5A6B4B5A895BCEA583B35351D00052F + 003A442E08FBF80F08E9DEDDE5071E2008F3E2DFD9B2B2D9DAEBEB07334310DF + DEE650DAD93936E6F3B2686B5D64655B5D5F616161677496BECAA95C07790017 + A9A9CABEE0C992635D5D63A6C9E0D8BEBEBFCAA9A997BE0004D704D10007BBBB + 9494B493930000000006FB0C0C051616050C0012FBFB0C07070E0E1B0E252525 + 0C1710101A170520000C1616252534340C051B1625250B1D011805271D1D0007 + FF0E0E0EFF1D1D0004180E1C000E0D1D0D2E370D7F6F63646463636304690164 + 01640463045D001163728280A4B3A5B8B9D0BAB9909192B3A70004B9004CB890 + 9294B584F3573C333E22222F2F222F4F3310FE0808081C0FECDFDFE2074F5557 + 555344354F55575643F3D9B1B23749ECEBDADA2311E4AD936A5B5B655D5D5F61 + 71615F6476A8BE97785C0479001A597979A9A9BFE0C9A773635D64A6C9E0D7BD + BEBFCACAA997BED806D70008D1B5BBBBBB94939300000004FBFD0705070E0012 + 05FD0E0E18182F342F3C3C442525312C2C2C04340012432F3F3F505050342F2F + 3F44443F3F3F44440835000A443535353C3C353C3527112F00061D1D2F1D2F1D + 040E0007051D251D1D1818000527061C0122051D000F2F422EA35F6364636363 + 6963696963000464075D00116974A6B3B3B9BAB9CFCFBAB39183A5B3B90004B3 + 000A919283B47DF4523C3250062F0067503EF8100707F605242825E2DFF1F3F6 + F60FF6ECECEC0FE2D9DEDFEC214DFDE2E21CC8A8E20DA0D0B8835E5F5F645D5F + 617171605D6D94BCBF78785C7979795979795C5C97E0C9B49282656590BAC9D7 + BDBEBFCACAA9CABED8D7BCBCD7D7D7D1B5B5BBBB94939300000000061B25252F + 2F34051D01340143043C063F001334343D3D34343443433F4E341D1D2F34341D + 1D00042F00061D342F3F3535052F000C2735273F35352F1D2F2F2F1D0518060E + 0006070516161D1D060E0505061D0B0E00101D1D1D0E1B051EFF2FB165696963 + 63690563000369656300075D00046463749104B30029B9BAB9B3B3918190A6A7 + A6A7A6B3A681A6BAA12E0C07070C170C0C0C1B0C1D16F4E2DAE4ECE2EBECF200 + 04EC0044E2E2E2E5DFDFE5DADAE2F2F733320FEBFBFCC8D1D6CCCDC9D0BA9164 + 5F60605D5B5F6061615F6476B5D8BF977879795959595C5C5C97D7E0C9D0A774 + 698090B4D1D8BE9704CA0010BFBEBDD8D8D7BCBCD7D1B5BBBB94B49300000006 + 1B252534433405250143054E053F0134052C00073D2F3F3F504F2F000416000C + 251D1B161B1B0E0E1D2F2F3F082F0009272F2F2F1B1B0E1B1B0007160011050E + 0E070E0C0707161D1D05050E05050500050E061D060E061D000B2F1D1D0E0529 + FF49DA897300056907630027625D5D5D5A5D5D64636A83A6B3A7B3B9BAA7B3A7 + A6A6A691A7A6A7A6A7A5B39193B03E1008FBF400040800690C0C0C08E8E6E5E2 + ECE2E2ECE2E2E2E6F6F2F20708F6F60409E807080FF3E2F30DDAADD7C9C9D6D6 + D0D0A783695B5F5F64645B60616161676577B5BDBFCAA9795959795C5C5C78D8 + D7D6D0A774698281B4D6D8BE9778CACACA97BFBEBDD8BCBDBDBCE0B5C9BBBBB4 + 9300000000061B1B25253434052501340543063F000C3434344334343F3F4E50 + 4F2F041D00122F272F272F2F2F1D1D2F2F353527272F2727062F061D0618000A + 1D1D1D181D0E0E1D1D18061C010D051D00060D1D1D0D1D1D062E0011333E3333 + 332E1C1C0D1D0E1D23560ACE7300046A000969696A69696963636300065D0021 + 646973748190A7BABAB9B3A7A6A6A692919292839192A590758EEC0E0FF8F6F4 + 1000040800220CF8F8F8FB08F6F3F3F2F2F6F3E2F3E6F6F624240F081720F6F3 + 0B0FF4E8E4AF9CD105D60041C9C9A783695B5B5B64645B606171716067657696 + 95BFCAA9A97979795C5CA9BFD8D6D0A78374839193C9D7BDBF78CACACA97BFBE + BED8D8BDBDBCD1D1B5BBBBB493000000000B0C1B1B2525252C2C252C2C000634 + 063F000C353F3F353C3F3F50504F4F3F052F062700041D1D2F270735013F052F + 052700172F1D25251D1D1827271818181D1D1D221C1C27271C1C2700061C061D + 00042735272706350014442E1C1C0D1D0E1D424E47B06B746A7474696A6A0569 + 01630163045D00236464656973828281A6A7A5A6A691818392839191747474A6 + 8077B0270F0FF6F6F61010000408002CFB0710172525100818091607F8F81008 + 1708F8E6F3F8080716250EFDE2AF7E93C9C3D2D6D6D6C9C9B4926964045D0037 + 5F60617171616067636B96BDBFCACAA9A9A9795C5C97BDE0D6B4A792747383B4 + E0D8BE9778A978CA97BFBEBDD8BDBDD8D7D1B5BBBBB49300000000050C0C1B1B + 2500062C01250534063F001E3D3B3B3D3B4350504F4F56502F2F2F3F3F2F342F + 34342F1D1D2F27353535044401270B2F052E0627000C111D1D222E2E3E333E33 + 3E2E051C0B1D0127041C001B27272F1D1D0E050E271147EC7E7473737474746A + 69736A6963696300045D001C6565696974757482838190A69181817474837374 + 74757581929FE62C04F6002BECF6080808170C2429322C3D3F354335353F3535 + 354444532508F4F407183C444D441BE2D9B0616BD2D1B50004D6003FC9937565 + 6464645B676061717F7171616F646B96BCBEBF97CAA9795C5C78BFD7D6D0BAA6 + 696969B3D6D7BE9778A97878CABFBFBEBDBDBEBDD7D1B5C9BBB4B40000000004 + 0C0C0C1B082C0534053F0743000650504F535650053F063500051D2727353500 + 044400083544352F2F2F353F0B350627000C1D1122222E2E4435443544350527 + 00061D0E1D1D1D0E0605003F0E050E0E0E1D1D1D0E05052113ED543E8F756A73 + 74757574757575696973746969646465646973756975839283A6A79181837473 + 74696A747482748CDA232D0005F6005A08170C0C070C464A432F2C3D4646434F + 4F435356535356463C2F273C46555555532C2AEBB17189B4D6D1D1D1D6D6D6BB + 939275746565646061717F7F71716167646B96BCBEBFBFCA5C5C595CBFD8D6C9 + D0A7696A73B3E3E0BD970478000FCA97BFBEBDBEBEBDD7D1D6C9BBB4B4000000 + 00042C2C2C25073400063D3443434646063F0143073F000344534F0006460635 + 000B4646444F4F3E353544353500063E0535064400083E3E353F2F1D352E0435 + 0057272F27272F27272F2F2F1D2525181818250E0E09090E0E250E1D1D1809FC + 0EFDFD0C0E161B0C2EE7615E698375757474747574747369747469696A746973 + 7574758374738283928272736A6464655B5B727DE55541273B0005340543000B + 464E4E464646433C433544000C3F001D5353533512DA8F616DA7D0D6D6D1D1D7 + BCD1D1D6BBB4A792926A655B5F000661001D605B6BBBE0D8BDBEBFCAA97897BE + D8D1C9B4A58090A7C9D1D8BF7878CA0004A9000C9797BFBED8D7D1D6C9BB9494 + 000000042C2C312509340006434346463F3F0643043F000B3535444F4F4F4444 + 4446460006350005434444444F00063E00064435444435440835000944354444 + 2E2E2F1D1D00062E061C00052E2E1C1C1C00090E00070707FD0C0705FD00040E + 0037FD0C0CFD0E0E07FB2F0A9F5E6988836A73747473746A6A6A6969696A7473 + 69747483747475737374737373646564645D6468DE330C4E3C000634000D433D + 434343465353534F4F433C0004440A3E000E4F5555553524B15E779494BBC9C9 + 04B504D10009D6C9BBBB93926A655B000460001D7171605B6B94B5D1BCBEBFCA + 5C7885BED8D1C9B4B3A6A7BBD1D8BF97780005A9000C7897CABFBED8E0D6D6C9 + BB94000000052C25252C250008340009434335463F3F34433400044300063F35 + 3F2F353508440635000B43353F3535352E3535352E000635012F0127052F0727 + 000B1D1D0E18181D1D1D181D0D00091D0011FBF4F8F8F8F40E070C0C0707F4FB + EDFBED00050C000E08F8FEEDEDEDFE56489F5B63886504640028696565696965 + 696A6A746A69736A696973656564656964645B6460635EDDF52C542F4634433C + 433C0643014E054600064343433535440B4F00135555554F3BDF718D686B7693 + 9494B4B4BBD2B50006D10026D6BBB4926A6464645D60605A5A5B5E929396A8BD + BF78789797BFBDD1C9A7A7A7BBD1D8BF787807A9000ACACABFBFD8D7D1B5BBBB + 000001250431012C053400072C253434433543000534000B4343433C44342534 + 344343000635062F000B343F433C432F2F34342F3400062F00051D2F2F1D2F00 + 091D00030E0EFD000505011B090E00131B1BFBF4F4E9F4F40C0CFBFBFD07FBFB + FBEDED00060E000D050505FF11111149327F5F676400055D0464002365696969 + 6A74696A6A6A69696464676464645F6060707EA13E052F584E263C343C433200 + 0543000735535346534F530005440C4F002F555555564320ECDAB28F7F617C6B + 93BAD0B4BBBBB5B5B5D1E0E0D6D6C9B4A792746965645D5D5B5B63636577D1D8 + BF000497000E85BCB5B4BABAC9D1D8BF78A9A9A90579000AA9A97878BFBEBDBC + A8B50000000634343425313D0534000C2C2C25343443343C43343234043C0014 + 46321D2F2F35353F434343343F25251D2525342F083401270125062F051D060E + 000C16070707FDFD0C050C050C0C0505010E010E040500060707FDFDFD0705ED + 01FB0B0E00391D1D1D22221D1D1B1946B05E645D5D5B5A5D5D5D646465636969 + 73746A656A6A65696F5F6060605F61717F8CAF1853414D3D5350323C3C3C3200 + 0543000335464E00044600064343433535500B4F0041555558565053585332F2 + E4E2DFB0A18D75A7A793B4BBBBC9C9D6D1D1D6D6C9BBB47692836969645D5B5B + 6475B4B5BDBEBF9797BFBDD7C9B4BAC9D1D8BF78785C5C000779000859595C5C + 7897BEBD0000000B2C2C2C262626252C25252500052C00133D31313431253B3C + 45463C3C3C3434273C3C430005340003252525000834012F052700072F2F2F1D + 1D1D250004160125061D0005181818090900060E051D010D041D00121B0C160E + 0E160C0C05050E0C0E2F27273527072E00333E3E333E3E3527532F30B2615E5D + 678D675D5F5F64646969696A756A69696964646061618D717FA37F8CA3F75846 + 554335505600063C000543463C444400044F0003564F4400044F00064D564D4D + 564D065500064D5555554D550558003756541BE4B2A37C7592929393B4B4BBC9 + C9D6D6C9C9BBBBB4B4A79274696564697492B4D1D7BDBE97BFBED8D6D0B9BBD1 + D8BEBF785CA9A90006790559000379A978000000000B2F1D0E160C0C16161625 + 1600072C000C31312C2C25464B46464B3C320D34000332323400042500073234 + 2534342F2F00041D000416160E0E041600292525251616253C343434432C2C25 + 252F2F1D1D2F2F2F2735352E272F2F2727271C1C3F353F35353E3E00044F083E + 01490133043E002C3F3E3E5722B261656F6F67675F5B5B65645D64656A736964 + 645B5F71707FA1DC719FB135565235433C43433C0635053C064F015601560455 + 044D015607550456015505580011565655553B2A8F7C7480917592A793B4D000 + 06BB0028C9C9BBB4BAA7928374839293BBB5D7D8BEBFBDD1BBBAB9B4D6D7D8BD + BF7897CAA97959795C5C7979065900000006181D1D16070C05160425000E3427 + 3434342521323434323434250B1605250006160C0C070716041B040E041B040E + 00070516251616050700061D01340134042F043500082E1D1B0E1D1D1D1C052E + 0635043E00084F2E2222222F1D22042E0003222E2200042F00264F4D0AB1615B + 5D6760605F67646564645B5F5F6061717FA37FA37F71C8DA3A583DED2F1D1D1D + 082F0527043C001235444F564D55555644504444444F565656530C5600195558 + 58554D32DAB08D6A65657374759292A7A7A7B4B4BBBBBB0004C90023B4B493A7 + A7A7BABBD6D1D7BCA8B5BBB4D0BBD6E0D7D8BDBFBEBFCAA97979A9A979797900 + 05590000000617171710100808170009202016312C313131260006170B080006 + 17170C171717040801FB010C041B0116090E00091B1B1B1D16160C0C1B00051D + 001234342F2F3F3F3535444444271D1D271D1D340743000A3C353C4E3F3F3F44 + 442F071D001B2F2F1D1D3F2E372F3D231154534704B27F685F8D8D5D5A606060 + 7100067F000BA17F719F8F074D26163C4300060E00041B1B1B0E071605310007 + 3B54434E4F565000053F064F0B53000A56585858555331EB8F5F0464000B6565 + 6A6A838392A7B4B4B40009BB0023B4D0D0D0C9D6B5B5BBBBC9C9D6D6D1D1D7D8 + BDD8BDBE7879A9A978A9A979795959595900000000061212120808080610012A + 010F052400042624262606240B1706260006170C0C070716072F012704350015 + 3F3F3F2F3F35353225252F3F2F3F2F3F3F353F353500044400084F4F44353E44 + 35350644044F014D014F043E00084F2E2F3F3F2F2F35043E004B444F4F4F503F + 53564F4F50565856E2A361615F61717FA38FA38F8FA37FA38F618FE24D564E53 + 2E34462F2F2F1D1D252C252C25252C25252C25253C3C3C3535353F3F504F4F4F + 5044445044000456014D01550B56001A5555585855565331E57F5B645B5B5B64 + 64646969656A7492929305B4000EBBBBBBC9D0D0BBC9C9C9BBBBC9C905D60013 + E0E0D7D7D7BD97A9A9A97878A95C5C797959590000000B0806170006262C3120 + 263108340003253434000625000C32353C273C272732272727350544014F054D + 000B55554D56564D554D4D443C00064F000744443E3E3E4F4F00084D014C0153 + 064F000653534D4D4D4F053E074F00064D4D4D56565604550029534C4C534F52 + 525658551FDFA3A19F71717170717FA3B0DEEC3C555050E93F55462745433C43 + 433C35000B44064F00172E2E2E3E3E4F5556564D4D5558585855555656554D55 + 55000558000C565658585656575612B15F64085B000E5D5B5B64696A75929293 + 93B4B4B404BB06C90005B5B5C9C9C90005D60005B59597A9A9000478045C0279 + 00000004412624170510000B17172620203131313B343B0006340008433C4325 + 2F343C3506460C35001344444F4F4D444F4F4D4D554D4747474D55555500044D + 00054F4F4F534F000644044F00074D4D4F4F4D4F4F000653044F01560C4F0153 + 054F0156045500264D444D4D534F3E3E504455571904F6ECE2EBEBECF613184D + 554443353F2F50534E44534F4F44084F0006443F354444440E4F00034D4D4D00 + 12550022565555555658562CE571645B5B5B675F5F5F6060616160675B646565 + 7492A7BABABA04B406D005C90013BBBBD6D6B5A8BDBFCA979797CABFBFCAA95C + 59000001} + end + object Label6: TLabel + Left = 96 + Top = 224 + Width = 51 + Height = 13 + Caption = 'Messages:' + end + object ImgLogoRiddickLeft: TImage + Left = 0 + Top = 224 + Width = 92 + Height = 210 + AutoSize = True + Picture.Data = { + 07544269746D6170444E0000424D444E0000000000009A030000280000005C00 + 0000D200000001000800010000007A4B0000120B0000120B0000D9000000D900 + 000000000000FFFFFF002823380033212800D18591005F3739004D2F2D003C31 + 2F00774B4000996C6100B98F8100D49E8900E9A17D00D9AB9300A4806F00D795 + 7200E9BCA400C78D6800B17D5D00ECCDBA00896045003E2C2000FADEC800E9B2 + 8200CC956000D49C6500C08C5B00DCA36C00C89D7200F4C29100BEA79000E2AC + 7000FEC48400D7A9770049403600DAA56600C4945C00B78B5700CE9C63009F7A + 4D00D4A46B00F0BC7D00FEC98800FDCC9200B4926B00FED29D0032261600CA9C + 5F00D3A46500AE865300FDC67B00DCAC6C00E7B47300C49B6400FAC98800D3BD + 9F00DBAC6600FAC57600FECA7E00FECA8200FACA8200FECE8600F4C58300FBCE + 8B0084705300BB955800C49C5D00FECA7A00CDA46300D5AC6B00FAC97E00FECE + 8200E9BC7800FACE8600ECC38400F5CD8B00FED59300F4D4A200FCDCAB00B18E + 5200A6854D00FCCC7600D4AC6500FECE7A00FACA7A00E2B76E00DCB46B00EFC2 + 7500FECE7E00FACE7E00FED28200E3BC7500FACE8200F0C67E00DCB67400FED2 + 860066553600F5CB8400FCD38C0093794400FED27A00FACE7A00FED27E00F4CA + 7C00CCA96800C4A46500FAD28200EAC37A00FED68600FAD28600F5D28C00C9AC + 7400D9BA7E00F4D39500DEC08800FEDD9D00E7CA9000ECCF9900FDD27600856F + 3E00C6A55D00F5CC7400FAD27A00FED67E00E6C07200FAD27E00FED68200F6D3 + 8600FAD78900FEDB8D00EDCD8800FEDC9400FED67A00FAD67E00F6D37D00FEDB + 8400F8D68200FEDA760075643600B2985400FAD67900FEDB7D00574C2F00E5C9 + 8000FCE7B100F6D67600B69F5A00CFBA7600FEE49700F4DC95006D6344009886 + 4600A5924D00F6DA7A00C7B16700FEE27600B8A86A00EEDB9300A79956002422 + 0F004A4626008B8762003D3B2B0086813D003E3C1E007575350060612D003232 + 270031371A002B2E21004A5B1F0027301100394D1400252623001A2D05001927 + 0A0026420B003244240016370400101B0A00232E1D001E301500293524001935 + 1000172414001D3B1B001C2B1B00063005000F330F00162A1600313C31000541 + 0600032407000C281000122A1600122F1700162A1A0017301D00042D0F000D2B + 17001E35270006351A00022612000B251700032A160002211200062717000226 + 170006201600192822000D30240010231D0002221800022E280002212100252D + 2F0013242A000019459A6363A6BBCDC0B7BDC2BDBDBDC2BDC2BDC2BDBDC2BDC2 + BD003ACA01CC08CA0000001A2B9298988AB0C6C7B3C2BDBDC2BDC2BDC2BDC2BD + C2BDC2BDBDCC42CA0000000E50A3A398778EABBDB3BDC2BDBDC206BD0005C2BD + BDC2BD0043CA00000009A5A5A398988AA8BAD10007BD0009C2BDC2BDBDC2BDBD + BD0043CA00000010779797A32777ACC0D6C2BDC2C2C2BDC205BD0014C2C4BDC2 + BDBDC2BDC4C2BDC2BDC2BDBDBDC2BDBD28CA0003BDC2C20008BD00000018A397 + 97A32797A0C6D6BDBDC2BDC4BDC4C2BDC2BDC2BDBDC204BD01C207BD0005C2BD + BDC2BD0028CA000BC2BDBDBDC2C2BDC2BDC2BD000000000A97A3A3A36377ACC0 + D6C204BD01C204BD0006C2BDBDC4BDC205BD04C20007BDC4BDBDBDC2BD0016CA + 01CF11CA0003BDBDC20006BD01C201BD0000000FA3A6A5A36377ACC6D6BDC2BD + C2BDC20005BD0009C2C2BDC2BDC2BDBDC20008BD0004C2BDBDC228CA000BBDC2 + BDC4BDC2BDC2BDC2BD0000000014A5A6A56397638EABD4C2BDBDBDC2BDC2BDBD + BDC205BD0004C4BDBDC204BD0008C4BDC4BDC2BDBDBD28CA04BD0007C2BDBDC2 + BDBDC4000000000A77A6A56363638A8ECAC206BD01C404BD0008C2BDC2BDBDBD + C2BD04C201BD01C204BD01C201BD05CA01CC22CA04BD01C206BD0000001D77AA + A35050976396B9BDC2BDBDC2BDC2BDBDBDC2BDC2BDC4BDC2C4BDC40007BD0005 + C4BDC2BDBD0028CA000BBDC2BDC2BDBDC2BDC2C2BD000000000C77AA9E93528B + 2760B2BDBDC204BD000EC2BDBDBDC2C4BDC2BDBDC2BDBDC404BD0007C4C2BDBD + BDC2BD0013CA0005CFCACACACF0010CA0BBD0000000C97779878527827A0CEC4 + BABA04BD0005BABDC2BDC20004BD0004C2BDC4C204BD0021AD9FBABDC7CCC6C6 + B8AFC1C7C6CCCACDBDBDC2BDC2BDC2BDC6BCC1C0C1C4B8B3C40005BD0015C2BD + CFCACFCACECACFCECACECFCECFCECACFBDC2BD000000000992A597979898A3AC + C90004BD004FBABDBABABDC2BDBDBDC2BDBDC2BDBDC2BDBDC2BDB8B4A9B4BAC2 + C7C7A9BAC2C6CACCCFD0BDBDBDC2BDBDBDC4C1C7C7CACED3C7D0BDBDC2BDC4BD + BDBDCFCFCFCECACACECACFCACFCACACACFCABDC2BD000000019704A3000A97A3 + B1C9BABABABDBDBA08BD01C201C204BD003FC2BDBDBDBAB4B6B6B4ADA9BEA2B6 + C2C6CACCCECEBDC2BDBDC2BDBDBDCBCBCBCECFD4CFCFBDBDC2BDC2BDC2BDCECB + CECECBCECECBCECBCECECECBCECBBDBDBD000000019704A3001897A5ACCDBDBD + BDBABDBABABDC2C2BDC2C2BDBDC2C4BDC2C204BD0024C5C8B6A9A9A72222A2B6 + C2CAC6CCCED0BDBDC2BDBDBDC4BDD3D0CBCECFCDCACFBDC2BDC204BD000BC1C1 + C7C1C7C7C7C1C7C7C10005C703BD0000000B976397A39797A3A0CFBDBA000BBD + 0003C2BDC40004BD0024C2BDC4BDC5C3BDB4A7A22222A7B4C1C6CCCCCECDBDBD + BDC2C2BDBDBDD3D3CBCBCEC6C6C605BD0003C2BDBD0010C20003BDC2BD000000 + 0033A59797A3976377A4D3BABDBDBABDBABDBABDBDC2BDBDBDC2BDBDC2BDBDBD + C2BDC2C1C1C1B4BE220715B4B8C1C6CCCCCACDBDC20005BD0012C2D0CBC1C1BD + B9B4B7BDC2BDC2C2BDBDBDC204C3000EC2C3C2C3C2C3C3C2C3C2C3BDBDC20000 + 000BA59897A3A3A3A6A8D2BDBA0006BD000CC2BDC2BDC2BDC2BDC2BDBDC204BD + 0010CAC1C2BAB6B6A9B4B4BAC2C6CCCCCFD004BD000DC2C2BDC2C0C1C2AFA8A0 + A0A4C40004BD01C207BD0005BAC3BDBAC30004BD0005B5C5BDBDBD0000000011 + A5A3A5AAA5A5A6B2D5BDBABDBABAC4BDC40004BD001FC2BDBDBDC2BDBDBDC2BD + BDBDC3C3C7C1C1C1C4BAA9B4BDC6CACACACEBDBDC20004BD000BC2C0BCB7AEA4 + 6060A0BDC20007BD0004C3B5C5C504BD0004C4BAC4C504BD01C201BD00000012 + 2760AAACAAA598A5BBBCA8152EB4C7D3ADC705C201C709C20004CCCEC7C704C4 + 0033B8ADD3D2CCC0BBC0C1CBCBCBCECECCCAC0CCCEB1608A8AA6C4D1D1D1C4C7 + CCCCC2C1BCB2B0B9BBB6A4A0ABCED5D5CAAED6D4CB0000000012778AAAACAAA3 + 98A5B0B7B6A7A9BAC7D303C707C201C707C20025C1CEC1C2C4C5C5B4D2C5CED2 + CFC1B4B9C5C5BDC2C7CCCCCAC6CCC3A48A778A8AD0CBC4C5BA0004C30012C5B1 + B1B1A0B1A28E96A0B5D5D6C9A8D6D4CB00000011A5A3A5ACAAA397A3ACC7B4B4 + D1C5CBBAA90010BD003BC1C7C2C2C4BAB4BAC6C9CACFC2A92260B6C8C5C4C2C1 + C7CCAEB5B4A48A6377A5B8CBC4BDC5C5BABDC3B122A2A4A4A4AA77978AA8CDD6 + D2B6D4D2C50000000013A38BA3A5A3979E6F97BABDC4D1D1C4BAA9C4BD0008C4 + 0008BDC4BDC4C4C4C5C405BA0034B4BBC9C0CDC2A76014B6B6B4BDBDC2C2C3AE + B6A7A08A63638AB4B4BDC2BDBDB5ABABA2221515A48E8A509263A0B7D6D3C4C1 + B4B40000005C9E4150316F42412131A4ABB8C4D1C4BAB5BABAC4C4BAC4C4BAC4 + BAC4C4BAC4BAC4BDB5BAB4B4B6B6A9A0B1C5CBC19F8E60B6B4B4BABDBDBDC5AB + B6B1A08A6377A6A7B4BDC1C1B5A8A2B1A08EA08E7777974F42508AA0B6C5B8AB + ABB4000000118B926835692F4F252508A09FC3C4BAB4B70010BA0013AFB8B5B4 + B6A7A2A2608EA7D1BDABA0A0A8A9B40004B50024BA9FB4A7A06063A5AAA8B4BC + BBBBABA20522A08E60633150504F2F25638A8EA4A4A4A8B40000001498988B50 + 6397979835128AA8ABBABAB5BCBABAB404BA0044B4BABAB4BABAB4BAB4BAABA9 + A8A7A2A2A2608EA7C8B6B1608AA7A7A8A9B4B5BAB5B4BAB6A26077A5ACA9B4B7 + BCB2A822608E8E608A974F312541523042978EA0968EA4AB0000000598A39798 + 9E000498000D0F77A4B7B8BAB5BCBABAB4B4B40006BA01B404BA003BB6B6B6A7 + A2A7A2A7608EA7B6BE8E8A14A2A2A2A7A8ABABB5A9C4C8A4A677A5AAA8A8B9BC + BCA8A008A08E8A63973141452455485E988E8E6396A0AB000000001423342F41 + 2F2828265097A5AABFBBD20706C4BABD05C40043C2C4BABABDBAB4A9A8A9B6C8 + A9A7A08E228E8E8E6060608A9797A3A5A68EA0A0A4ABCDAB776377778AA0A4B1 + ACACA496A68A415630526B8F6B6B454452442F4452630600000000117F6F2777 + 9797509C971C355096ACAEABA70008C40010C2BAC5BABAB8B4B6A7A7B6A9B6A4 + 8E60048E002F60A6A68A77A58AA6A68AA59760A0A48E631A2478A6B1A9B1A6A6 + 8A507798455556575D5B555B5244565B56567C416000000000117C50778A7777 + 9763A6092C0D702C962EAD0008BA0013BDBAB4B4BABAB4A7A2A4A2B1A4A08EA6 + 6060600005A6002B8A8AA6A08EA6A5A3778E8E8A501B3433AAB1ABA48A972724 + 695E3330385D5D5E5B5D5544556B4848575E50000000001124256898779E40A0 + B5A4966F2D1D1A05150008B4000FBABAB4B4BABAA9A722228E8E8EA6A600048A + 0030A68AA6A6A6A5A5A68E8E8E608A602EA060505E3426AC8E8EA07741241933 + 30241838555B6B7C616B52566B6B6B29579A00000011630F72278EA6ACBBC9B7 + 8A9C363E25A0AD0008B40043BAB4B6A9B4B4A9A7A08E60A660A68A8A7777778A + 77A58A8AA5A38AA68A8A8A1460A4A08A27303324A5A377085052382318261823 + 57554452525D5D56556B5D5D29487C0000000013A0A08EB1B9ACA4ACAA775021 + 5644A3B0C6B4B60008B40009B6A9B4A9A7A7A08E6000048A01A60663002D7763 + 1477778A77777763148A7763271A18268B41252731525252183355485D484441 + 2F6B7F48485D7C6B5D7C6B000000005CA4B0B1B1966350412C352852414F97A0 + A7A9A9A9B6B6A9B6A9B4A9B6A9A9ADA707A08E608A8AA5A5A527505027502727 + 5014276363637777148A8A77777727502F522F19111A445238334848565B5D55 + 26525D616B6B5D6B6B8F6B29000000131E171D1C1A2630428B4178788B692C08 + 06B6B60005A90044B6B4A9A7B6A9A9A707A0608A77776377A327503131312531 + 1A25255097637714088EA68EA0608A8A9838241B341F385557486B5B52335D57 + 3856615D5B6B615D617C5B2900000044739090212433444241417842418B8B98 + A6CDC8B4030702030315A9B4B4B6A907A214088AA57777272727312531509797 + 5027506363778A6005BEBEA90760608A63252F38045500145648383356523056 + 55483E3E2936362948568F8F0000005C711D1726301F4492414F4141418B8B98 + 77BCB9ABA9ADD707ADA9B4B4B4B6B4A907088A8AA58A77632727312531976363 + 50636363A3778A60A0AAAAA08E1463634F242F3038567C5555302F2633563856 + 3833482948485523387C555E0000002348213526305252788B4242422F2F699A + 8BAAB0ACA0ABABB6C8B8CBC7C8B9B4A7A2086000048A00067777635031500463 + 057700168A08608A8A8A6325242F3830443052385555563030520456000C5238 + 55577C555244525756560000005C1A44443030444478926F682F442F44456863 + 8A8A4096A49FC8C5C5C3C3C5ABA2226060A68A608A8A77636350507777632777 + 637777776363634F31311A2323231F385638565655563856561F563852385256 + 555555565252555755550000004144444542303324417845682F302F42447835 + 3177501C2715A7B6C8C5B9B9B5A8A2A08EA6A660A6A6A6776350277777632763 + 9763636350313124181A191B1F1B1F000555053801560538000B565638565652 + 525534555B000000005C982528242F3342426969352F302F41414F181A777717 + 70602E2EABABB6B6B4A9A7A28EA6A6608E8EA67727502777632731504F315031 + 4F25411A1A18181B1F1F1F3856555755563833565533555B55561F5555565655 + 5552561F45550000003498502F421826446825241A412F413150632635A38A42 + 688AAE8E15A8A8A7B6D7A7A7A08E8E6022ACAA77275027636350254124420424 + 002442182F2652383833555656557C483434347C7C7C575D4834485B7C55565B + 7C56563433450000003798351A2626242669254444422F424F9E97449C97A597 + 988AB14096A0A4B6ADADD7A9A0A68E60A2A8B01427312727504F2F1819192626 + 300004520021383838557C7C573434575D2929297C7C55575D485B3E557C5B38 + 56555B5B485E560000000031241A1C2C27639898418F4F41428B7856412F2F41 + 42426B45425D34188AB0BBD7020606068E8E058EA61431414F25243030000523 + 04380013557C55557C3E4936615D5D5D67575D7C7C577C000457000B48485533 + 555B5B6B5E555500000000344F686305635027441D708B4F926992424F78788B + 8B8B93928B29338B778AA0A8B4A207A7A08E8E96A550252425412F3030232323 + 0438002456557C577C485D61493F493E5D5D5D6757675D675D5D5D675D5D5D48 + 555B55555B565B5B000000325092638A7075744E4E929E8B926F8B6363635098 + 50775097970F2563971C1260A8A0B6C4B9A2228A972F2F2F2424263023230538 + 000E56557C575D5D5D3E3E3E62493661045D00133E49615D5D3C615D61615D48 + 485B5E5B555B6B00000000303192693575747475118A7777779E97979C695E21 + 694F8B4F4F122727414A2150A5AAABC6C9B90614253030262630232306380006 + 565557485D5D043E00152949493C3E5D5D5D613E49365D5D613E483E3E5D5D00 + 046B00035B6B5D000000005C4F42244470414F3177979E778A9850986F1D4A5E + 2828283531633118247892352CA6ACB2B1B10514242330302338333838385656 + 55565557675D5D3E61363E3E293E3E613E5D5D3E613E4B4B3E4A6161293E5D3E + 613E4A5D5D6B5D5D000000322521455B45505097A38B9298506F694F4F19261A + 1A1828282693935E4298986828978AAAAA600814263838335555555656560455 + 00107C57673E3E3E4949613E5D5D5D3E3E61043E00123F3F61613F4B3E4B364B + 3F6161614A6B6B6B0000005C3525455B56446F929841414F4145694241422F44 + 422F695E708F9392978B9E41258B9E63636308144156555757577C7C55557C7C + 575757296B3E5D5D61615D67615D5D616136363E3E614B6D3F62626D3F3F363F + 3F61614B5D5D5D5D0000002F286F45784142694F986942694444243052924292 + 8B8B5098984FA3A5A592354F984F1C684127080827556B6767576B00047C0029 + 57575D2948346B486B5D5D575D675D6761493F363E295D5D616D62626E6D3F61 + 3F624B4B6E4B7F7F6100000000342668688B98988B7844242444334444244598 + 988B98509797974435422F4442242F4F9850503150276363354A615555675655 + 555505570023345D57485D6757486B5D3E3E616149493F4B4B4B3F3F3F4B4B4B + 496E62623F614B3E5D000000001A26424292988B78685E45444444422425248B + 8B8B5097974F92680444003E68684492416969506972417777632F3457595755 + 383838565555345548487C5D675D675D3E61613E3E61366E3F3F62622B4B3F3F + 4B4B3F3F3F6E3F624B4B0000000B26243578427868685E4845000444003A4142 + 4269686941416968444468444244684135354269446845422763777731333234 + 55382330303838555548485B6B5D67613E61366161613C490662000D2B626E3F + 4B4B614B62624C623F00000000042826286804440054455B4552455245424426 + 26286845693542444244682F525E2F412425425E524478696F25637727241B55 + 34563030383838557C576B575D5D673E61613649493F3F6D62624C62623F623F + 3F3F4B614B3F4C2B623F0000005C214244442644444456454444442F44424433 + 28192F2626304468244245422F682F2844284425425641262669412714143130 + 3456262F38383855557C6B6B5D5D3E61616149493F623F7F6D62623F4B3F3F4B + 4B3F3F4B4B3F624C623F0000000A2642782F2630447852440442004E4444451B + 2833264426455E52242F302F2424412F2F2F442F44452F44424444355060601A + 2345242F44525638387C575D3E3C363F3F49363F4949497F496D6E3F4B614B61 + 4B3F6E623F3F4B4C624C0000005C1892782F442878787844422F446956455E26 + 263330302F4452304444306830442F684542525B44416878525226441C772E12 + 30333052445256565255575D3E3F3F3F4949493F4949617F497F6D6D3F6E614B + 4B493F3F3F6E3F2B2B3F0000005C218B92423045689278524444525255684433 + 284530455252782F30302F3045302F78524545422F45449E92522328358AA431 + 2848487C527856553856486B5D3636493C61493F623F3F6D7F7F6D62623F4B3F + 4B4B4B3F623F3F2A3F3F000000484445332F4245522644302F44412544304230 + 525245684442422F784424425268443030524444444230524228261892A3AA27 + 6B827F5B5256787C7C6B6B5D5D61615D616D62496149053F000F61363F62613F + 3F3F4C3F4B3F614B62000000005C24455E304445304445454430454556454578 + 445268442F4444442F44424244422442422F4244302F44685226261869929756 + 825B5D6B56565256557C6B6761676761613F3F49493F623F3F3F613E3E363F61 + 623F3F4C3F363F4B3F620000005C2F335E4530452F42302F425E485E45304542 + 422F4242242F44424142424445447824244242305244308B5226191B2821695E + 56786B8F6B6B7C555B7C6B5D5D6B5D61614949493F62623F4936613E3E614961 + 3F493F623F363F4B4B3F00000010444430262F4424412F444456455252300744 + 00326828424244444556524552306844335E4430416830191B0F19284141416B + 5D67866B6B5B555B486B5D613E3E6161493F493F0561000E3C4949613F494962 + 3F4B3F614B3F0000004A302F2F4226683044305B5230442F4545304552683045 + 30442F5652565268442F78302F2F24444424424452261A181818197878526B6B + 61675B7C5556565B6B61625D5D3E6161496161610549000D6161616D4961624B + 613F614B3F00000000114544443028284528444544455E453044450006440032 + 4224442F44422F44414252442F424452422F424244242628261B5B5E455B484B + 364A6B5B565B6B485D67485D3E61613E5D5D0649000D615D674961614949614B + 614B3F000000005C442426262F35262F24422F555B45302F4444445252684444 + 4442414242445E30423044442F30452F44422F6845444445455E452F261F4A3E + 2B677C557C6B7C5B486B5D6161613E5D5D495C615C49496161614961617F4961 + 3F614B3F0000005C2825262844262845285E334544445B562F422F5244442F44 + 455E5228285B4B5E2F443068444538263034345E45924152442F421A24181B28 + 17867C7C6B6B485B485D3E49493E5D5D3E675D5D5D61495F62616A6161494961 + 49614B3F0000005C5B52787844785657381B1B1B1F34281C210C17455E281119 + 3511122727111A12111212111811110F0F0927315077A58A8A8EA6A6AAAAA060 + 989A938F8F5B565B5D175B5D5D5D57483E61613E67493D3F3F3D3636493F626D + 616D7F610000004278563030453333563378789292929863638AAAAAA6A5A6AC + AAB0BFB2B2B2B0ACB0ACACAAAAAAA6A6A68E8A6350972712118B699A9C6F9C4F + 925256557C487C485D48047C00166B5D6161616761493D3D3D3636616161494B + 617F616100000023785E5278789A9A9A9328335556784F31410F11352821211C + 2169413569253568241111000426001428192C1C5E45928B9C1C1B3852444528 + 4F8B231B0433001434296B557C567C6B6B4A615D6161493F3F3D3E3E05610004 + 8261615D0000005168281919331F232630525244444478684535784144523845 + 2F26243528191C281B3333455278789A9A3569448B50A3A3A3414230301B3344 + 441B2828353524455D5D557C576B7C5E6B6B5D3E613661363600046100075D5D + 5D6761615D00000000291A2C2C4111243569690F181A11110F28212C31353348 + 5E2F419E97975098984F9850989897A3A5A5A3000497002F50502777A397922F + 1835429A181A27778A8A632C5E5E6B6B6B293429485D5D616161363E61614961 + 5D5D5D82616161000000002914A0AA8AA58A8A968EACA8A8A8A9A8A2A4A08A17 + 714B5E5011424141422F564830191F0C1B19241A42000497002F505077A08E8A + 9741251A25781A318AA4ABA8A8A05025692F304834345B5B6B5D3E3E61614961 + 615D5D6B8F5D616161000000005C115031311227142222D7D3D8D702BED7B806 + 271D2B341F342B564545523056562F30382319302F422F181A251A1A4F77AC60 + 6342231B1B1A1A25508AA8C8C8BAB68E6077638B9352525E5B6B6B5D3E3E6161 + 615D6B6B8F6B8F615D5D000000524A62623E4A21142EADB9BABED7ADADB6A82E + 0B2B2A34342B0C1A241A111B19111924181A1A11112426527842261919250811 + 1F292929171B1850508AB1C5D2CBB4B6ABAAA59E9A7878565E5B6B6B5D5D495D + 046B00065D8F5D5D5D5D000000183C3E3D3A811C1515A8C7070603C7B1A0B51A + 3E83482418190418012601180419003A1A18191B261A1878190F1A8B260F2712 + 1A110C0C1118242442928ED1C9B2A8B9B9B6A29631924268486B5D5D557C8F6B + 5B5D6B5B5D6B6B5B5D5D000000195729395A4A2706A7A8A9A70707A7AFAB602B + 4C3E23261B1B19000A1800391919181A31124F180F184F182112608A270F0C0F + 1A9726427860B4C3B7A9B9C5B4A8A08EA6A6A39798688F8F82826B556B6B5B6B + 486B6B5D5D00000000554857573D2F0506A9A7A4B6D30207AEA60B2D2B331823 + 231819192618181824181823233326242424444F180C2944191C60A8A4770E2C + 124F422F414160ADD2B9BA22A0084014A0A8BEA0AA60774F685B5B6B455B6B00 + 045600036B6B48000000001B4857674A1415A2A9B6A4B5D5D7A7A031732B4818 + 26332326192626000618003B2F183038384444559A381B232F189EA402B4B1B0 + ABA008312F4241772EC5C8C40660275E688AB7D5A0A19763415B4A6B6B566B6B + 565E5B556B555600000000195557492C061507B4C8A8A8BEC8AB1417832B2F25 + 242F18261900042600053023331F33000438003630245256382642782F63BB02 + D6C9BBB1400E0D2152445006ADB6C7AAAAA397A5ACBFD48A6F1C255E6E6E6E5D + 5B826B565555456B555E0000005C5732171415A7B6C8C8B607A2BC2E1A2B811B + 1A1A30261819192F2F242F182F1826383852424438525678444278782F77C0D8 + D3C5B5A26060A61C38442560A9C8BCA722608E8E9696A8315E182448624B826B + 6B615D5B5B5B5555555B0000005C57201106B4B1B7B9D207A7A9A48A21818725 + 252F38302F2618385230262F2F24242F3030242F4441241A112C6F682131B0AD + A915A40707A7B7122F241A08A9B7BB070722A4A0271C11284A4848614C6E6B7C + 5B5D617F5D7C615256550000005C57201415B6B9B2C3D203C8A8081C82826745 + 284426523328192F2F2F24241A251A44262F242F2F2F5E0F09088E08122CA606 + 06A8A8B6AD071509262F3514A4B2BFBCC0CCBFB0A3525770754C825582948F7C + 565B6B5D45425B2F44520000005C670B8E15A7AD03A9B6BFD80312836B623430 + 2644523026301F442F4125412541414F19192F78191F1F60ABA7ADD2AB355B09 + A4CCB422A9AFB0AA414F97318EC9D7BDC8BEA0272C77AC24483E3434613E1F56 + 56555734455B7029382F0000005C670E05A8BEAD07A7A9B2C80312836B5E1F33 + 442F2F2F241A244F414F41414142428B1818414118191A22B5A7D1D5B041521C + 60C8B68E22B1B1A5428B981A60C603B5BAA9A01412776026451F332330383356 + 56555D5E2F78685E6F980000005C4914A4A8BEA70715A9B1D80311834A411942 + 414141424124354F418B414F4F4F41922F244242181C272EB7B6D3CCA84F4211 + 8ECCC2A2A222A0A51C4141118ABC02B4A98E14121A259C33454555382F265557 + 48573E522797A363637700000019488EA8B1B6070715A7B102151C836B312824 + 4242787842412400064F003D4141921A4178422811609FBCBED1CAB04F4227A8 + CCC3A4A222A0A5262F410F8AC307AD224012112435215B5638523038557C5755 + 486B446377A3A08EAA000000005C0FA4A8B9B6150603A2A2070628364531304F + 4F418B414F31509850504F4F8B4F4F8B314F8B411812A82EBCB6C8C0AC31521A + A0C9C8A7078E60A635262F1914BC07ADA027251A24246838522F242F55575555 + 553448426397A3A0A0A8000000151215A8B9B4A707A7BE0703A024234F504241 + 4F4F4F00044100434F314F4141424F4F24244278441B12AEA8B9B4D7C0AA4156 + 21A0CACD9F158E60AA1130781977BBD7A78E2731254292412424242F38483456 + 7C5534482F509898638AA0000000005C1407A8B4A9A207A9C8222E402F2F314F + 924442414142424125315041414278424226193052381F31B015B9ADADC09626 + 3821A0CACFA9076040AA2C52521B77BBC8226031419897639724242430345B34 + 565538342930412F4178508A000000111422A7B4A8A2A7B4D205069C5B56699A + 780004440047782F241A42427824412424261A182478191B50B015B69FADC1A1 + 1B191AA4CCD2A7036009AA1A30521F63BBD7A296689A98A3A39835181830331F + 343457567C3B38242441242563000000005C05C8B6A9A207A9A7BE152C752626 + 332F78262F443045522656303830302F2F265230191B4226192CC0D1ADA7BBAE + 270F1B63AED3C6BCD3CCB140120F19181908020812778AA577988B1830454533 + 557C7C555B5E6E6927979831254F0000005C06B6B6A7A215A7A7C8061C822F18 + 24254F45262F2F442642302F2F2424265533262F181878440F12B9CACCC1AF22 + 12358B25B0D3C6B7D1CFAB8E4F1B2F242808D31440A6AA8E8A97982628333333 + 565555576B6B4B4163275050314F0000001306A2A70707A7A2B1AF1472613334 + 1B2624522600042400351A2F24241A2F2F302F24442F4178441A60C6B6C8C6C1 + AB6098442CA8D3C6B9D1D4ABB0974441414460D88E8EB0B0AA8A279830451F00 + 0555000B573E612B2F4F4178687841000000001806A2150707A7A2A8AE1C8355 + 2F1919192626182F2418241A0424004026241A1A24424141424231A4C6A7AFB8 + 22A8B0630F31AED1C9B7D3CDB1B0A3412424268AC8BAC3B2B9B1609750263033 + 5E555B7C6B292A3F2B26352F4442424F0000005CA215152207A7A2A8A83E8356 + 2F231918241A303019262F182F24303026242F263041418B2F2627ABC5BBAB09 + 0408B0970F31AED8C6C3D3D6B1AC97242F261B14ADC8D2CCD2B68E274F444445 + 56555B486B5D3C3F36262624241A414F0000005C07A2A9070707A41596626242 + 2524182618252F262F26182F2F30262F262F262F2F187892232840AFD1BBA20E + 0E05AA410C2CA8D8CABCD8D6A8AC312641242140ADD7C8CCC8A7603178445256 + 56555E5B5D5D5D4B3E263042422869980000005CD7A4A8BEA722A4062C2B3C56 + 564528302F23232623331F343E3E4834295630242F187878230F60B802B52EA4 + ABA414193850A8D7C6C7D7D5ABA08B4297974177D107B6B4B6A0968B78525656 + 5B5B5B6B5D7F613F4A422F4278198B970000004CD7A8B6A7D72215A00D2B3E5D + 7F6161675D3423242634343E816B3F62612324251A1A41421B0F8EB8ADC6BBBF + B2090F2F9E14AED7D2C3D7D5A7602C98A3A6A58ED60307B6A722779252525255 + 046B000C6188616E484F4141440C41A50000005CB4C8BCA0BCBE068E1D62296B + 486B5D57342926424144613E48524A29191124244226182F3160BED5C6B4C3B1 + A69C424142BEC8B9B7C7D7BEAF6325241A254F60B6A20615A2AAA69E285E455E + 6B4A484A4B8F8F83696397988B1919280000005CA7C5A2BCD107A827623F293E + 3E6B48573D3E1831314152261A242418121231412542414163A0D1D0C1BEB6B1 + A59E503131D1C4BCBCC2B6A7A8143169523368A5B50707A7A2AAA59E525E565E + 6B4A4A4A4B827F731C63A350501A26450000005C07B422D122031521833F341F + 23192334201F24312F302F241A182418181A1A25274F50318A2ED3C8B7BEBEAA + A698273131D6CEBBBCB4A7A26027312524428B8EC2A7A7A8B1AAA59E4556935B + 4A824A4A4B827173247763975050504F0000001706A4B606222E1473814C1B1A + 3125302319171733614A24000418004123332641507777636360A9D1B6A8A722 + ACA598504231D4C9BCB7BE068E401A2550505063A0C5B6B6B9B1A6A39E9A5E5E + 484A824B4B6274712D1A63632750632763000000005C06A0A805060521735F83 + 28253125302F3111181A45331A181B1819191924278A608A8A8A8EB4D3B4A8A0 + A6A6A598982C77D4C7BCB5A2A460271A3150314F63A4D8B6C8B9ACA5A39E695E + 708F824B6E71712D2D4E35509797316363970000004C06A40507061271627F73 + 42314F4F412541182F502731503125191F1F33304F778A77778AA0B4CBB4228E + 8AA597989763A0CBC2B7B6A20660971A3163979777A4D3B6B9B0AAA39E8B9A70 + 708F0471000C4C4D2D73289298504F6363270000004DA2A206050929813B7F73 + 41975063979841252F4F634F78414119231F5545694F2797501415B4D1A78EA6 + 8AA39E98978AB7D1BAB6A2A2A08AA326252797638AA8D8D7B4B0AA9735359A70 + 8F746E000471000B4D2D4C248B989825255050000000004DA0052E080D835A88 + 6E958B639763975050276968974F9A4F27241A25253131506327311415B4C5A7 + 2277A5979250A38EC5A7A9A222A28E8A7725319898978A9FD6A7B9B0A69E6F68 + 5E72728275000471000B4E732B3197985031253131000000005C062215312B3F + 2A3F7F714F279750506397313150272727505018262F24506363772427BED1D1 + C5ABA66397978B2527A0C0B1A8A0A2B1A6A5971A4F4F31258EB9B903C8BFA69A + 5E687070827571714D2D4D73909C50251A1A4F502727000000138E068E35622A + 2A4C8373423150314F504F4F3100064F0034183023454441414F1A77B5D3C4C5 + B58E9797988B5060A8C9B6A8A2A8A8AA8A9725314F254F8EB6B107B6B0A59C93 + 45708F747171064D00099E6350313150975027000000005C60064070622A2A62 + 834C26242F4242252531312541244242423038565630241A1A188AB8C8C5C8B1 + A6972725258AA4AEB6B4A9A4A9B18E8A2731504F4F31A0B4B607B4B0A5936B70 + 7274827471714D4D4D4E74977727279797976350000000118E602C4B3F3D3F3F + 812A19231B2323242F00042400382630523056555556331918192160C5C8B4C8 + A28E8A271227A6B2AEA7C8A7A7A7A26077313150502525A0BAB6A7B7AA97938F + 8F9370707274044D000B4E706377276363A3639750000000005C051470714962 + 2B3F812A1B1B23263833483323303052385230525638383323231F178EC7D2C3 + CBABA08A27098AA4B0B6A9C8B6A7A922608A25244F4F42358EB6B6BEB1A69E93 + 8F9A92707072754D4D754D4E697763972763A39750310000004D05274A625C4C + 3F3F94293038302F303038303030523838304444445230383026381CA4D3D2C5 + C8A260772740A02EB1072EC5B6A8A92260771A2F8B4F2F3560A9B6BEA6A39C93 + 9378929372747100044D000B4E92A398505097974F4141000000001506354B7F + 674C3F629448444552445242412F2F443000055200333044305638445B122ED2 + D2B6C82296408A8EA403070715B9B6A4A7A08E1424244F4F2F358EADA7C8A6A3 + 9E93939C9A7072747500044D000B948BA39831314F9841241800000000149617 + 4C6767812B6E836B445252525B9A785633330445004456553830445652686B27 + 2ED2CCC5CBA98E14A0AEB607060607B9B1A0A28E606326248B8B3035A0ADA2B6 + 96A39E93939A9393707474754D4D4D908B97924F2524412424180000005C3649 + 363F2B2B4C624C73344A6B706B5E5E4B3E3E4A29174A4A17207C4B12271D2922 + A9B5C3C5C7C0C5C2C2BDB4A9A2222260A2B1AAA0A6252134529A2012B2C9AD09 + 14A5979A939A9C707475744D4E754E4E352F527856383044442F00000015623C + 362B4C2B3F62813E262642414241412F26453300045E004392928B9E8EAF0817 + 2203A9B6B6BAB8ADC2C2BDBAA9A7A22222A2A8A0AA8A35172956564A27B2C9BE + 0996A6A39C939393707475754D4D754D4E262F52787C563345335E000000005C + 3F49494C4C4C3E5F8345252531504F4F8B2F24244142424241989727A0CDD72E + 14051515A2A7A9AD03C2C3BDBAB4A7A7A20607A28EA66344551F525B1C8AB2D2 + 22608EA69E938F7093707475754D4D4D4E7241928B785278448B92420000004D + 366D3F4C834C366294281A24414142414152444125254F4F4F509211B7C02296 + 109607A7A7B4A9A7A9BDBDBABABAB4A9A903228E60A6639A52442F4550A4BDC8 + 22B1AAA59E9372939A7475747100044D019E049800068B9898A3A3A500000462 + 0028834C3F628126242441414F50504444445256456878782512B1BB0E130B22 + A9B5B9C7C5C8BABDBABD04BA0026B4030722A0A6985652452821A5ABB6ADA707 + B1AAA39E9370727575754D4D754D75A39798A39704A302970000005C5F62624C + 4C734C62622F242F2F426942425E5E6B824B4B4A5B551D0EBBBB091E159FB4BD + C3C9C5C5CBBABABDBDBABDBDBD0303A9A0A56F9D5B6B2970A6C3BE03A80515B0 + ACA59E8F71727472754D754E7497989E9897979798422F4500000003677F6200 + 044C0022627F45335E705B8F8F8F823E824A744A744A2B1115BBA0140ABE2E22 + BEC2BAC8B4B804BA002FBDC2C2C203ADB4B1969C71488F1D0BAACCBE03A706AB + B0AAA392939A6F7070754D4D4E709370705E935E935E29482900000000115A61 + 8183834C4C6261211F5B5B5B5E935600085E003B170FA4AA6F0B12BF2296229F + B4A7A903BABABABDBDC3C3C20303C8B7B06370339A171CB0D40207B1D1C3AAA1 + 6F939EA56F70707575754D3530452800041F000428784244000000533F4B3F62 + 834C3F4C3F5B4A4A2818701D175B569356553333210D14140F93947277220908 + A7A7C2C903ABB5A9A7A7B4B3B6B50903B20909270F989E8A15A0A7C6C9A06040 + A18B696F9A939393754D4E74A3985000049800058B8B422F24000000005C4C62 + 4C624C623F4C4B556B3E5E5E293E481F345E55341B1B1B048E60725B342897B3 + 0506AFA9C3C92E07152E9FB4B6C5C5A80A14B10A110D11682C6015060607D7D6 + CCBFB0A6979E9E929C9375104D93A350314F2541414F312525310000005C624C + 4C62836262625D44565638566B5D4829293E2020291B1A402E051D36345B9CAF + 159FC0B4C5C8031507A2A9B1B1C3C0AE0A40B04025751C171206060506050602 + D8C6BFA6A19E9E979C70744D4D6F981A2418302330261824411A0000005C3F62 + 624C83834C625B5B55522F2F3026232330444419191127C6070A0D5E567C1DA0 + A4ABC3C5C5B6A915A2A7B5B6BEB6A7BB2CA1A12C1E93A3114007070706050602 + BE22A69E6F70707074754D4E7569921B1F1F341F1F1F347C5B55000000126262 + 624C8383834C5E28261A251A31122527046300469763A6C6960A0A1952523460 + A8ABC8C9D1A9A9B6C5C3C5B59F2E03AF0E3737754E708A8AA4B9D5C9A2A222B2 + A08A3170748F8F9D75754D4E746856211F1F2121335E176B6B6B000000124C4C + 624C83628383553328192819111A1A5005970045A5A8C9BEA9601B1F262509A4 + A8B6D4C415B4CBC7D2B9BDA9960E400E100B101D172597ACBEC8BFB0A4A6A697 + 212D4E4E9D959D754D904E4A5E4A5E5E705E48484A4A4A484A000000044C0058 + 833F83835E3434483E363E3E3E52414141255077A4B6D7CAAA17345556048EA8 + B6D4D107B9D1D1C7C6C08E1E13370A0D6F134E100D0BA1A1A140A5A59E9E7590 + 101C2C1C1D5B704D90715E48294A4A614A4A824A4B613E4B0000005C83624C83 + 836283834538303038383833561F19191F23246315C9ADBEA02634520C0D8E2E + A7D4AD07C107ADC5C9C3B18E06AC8E8AA59C754D374E1313370A9C9C9E8F4E37 + A6C0B2960A93724E907041331923385555333355487C6B5D0000002B4C83817F + 626294361F3326182F192F18262623232334218EC806A2AEA6681B3855298A9F + D8A7A4A9D2B4BA0006B4002BADC5A00F7290370C0D131613729C741C167560A7 + 02ADA6707574909438182319191F1F1F3434345757483900000000293F624C7F + 8080945D1B3355343E67342330192619191F698EB4A7B49F40170C2378488A9F + D7A9A7A8C40009B4002AC3080C459521770937131372724E4E1EA115A702A2A5 + 937275734A3023483434395734343819301919230000005C4B62818383818348 + 1B481F555533232333485E331F296F60B6B7B9A409170C448B218AB4D7ADA7A9 + C8ADB4ADB4ADB4B4ADA4BD141F8B452CACB1A11E10374D9010A4A41522C5A897 + 70749073345534347C34341F1F23191818181A18000000296E4C838183818334 + 1F34551F343323231F28303033481C8AA8B7B6A805121178922C8EA9D1ADA7A9 + B40007A9002CAD0703081B304214C9B98E1E1010163708A7C8BE22B1609C724D + 4E711F347C3838341F1B1919182619191818000000294C626261616E83231B1F + 1F3448292934331A312524281C771507A2B49F8E141C4577A4A9D7D1A7A9B400 + 08A900210603031C4C92B022A6A113101090A19F22D2BEA0AAA5217290742824 + 26263030190006180004191B28190000005581626261618083301F231919331F + 341F33242531251818270606A7B6B7A8A063128EA8A9ADAD03A9A9A7A7A9A9A7 + A9A7A90506D3400B96BF090A1316104D138EB607D7B1A0A59870754E281A2418 + 2F3052181A18190004180003191B18000000002980628383808383181F303030 + 2323233019181A251A181A311407ADB9B9BA9F06A0A4A9A7ADD8A9A9A90008A7 + 002B0505D1B98EBC220D371613374E37A0072207B9AA9C8F9D4E5E411A301930 + 38331B191B1F19181A1A181924000000000D7F62839483833D1A191F1F1B1900 + 06180015191B1918111202B4A8A9A7BEBEBAA7B4BEADD302030009A7002BA006 + BEC9C9D5400B131613754D378E070706B1AA93829D9042252430262623281918 + 18191A12252518301800000000105C624C4B4C7321181118191919181819051B + 0047191B23231206ADD7A40506030503C8A7AD060606D6D2D2D7ADA70707A4B9 + B008ABBF0E16011613744E2CB5A202B1ACA34D2D9093242F262F1824182F2626 + 2F1A1A24261919191800000000095F62834C2D73191819000618004D1919191B + 1919192323191205A7D70706060705ADC6C3150506C49F0703062206060515B9 + 2206A0B19637161337722D09B4A202A8AA9C744E1D5018261919262F2619242F + 2F241A18182618182600000000116262834C2D2D181A191A1A1A241A1A1A1800 + 05190007301918261422A7000407002C06C8B9C80505A2D222229F9F15A206A2 + 07C7222E09A1AA1E1E37A16F7508AB22BEA4969375907241331F3434041F000B + 262644262F261919242426000000000C624C8383733F251A111A1A24051A0042 + 18181918182626261B2514060707A9A2BF22BEBE0505BBB22E2240A1608E8E2E + 07ADA7150D1EA1371E13A59E108EB606B6A0A572904E5E2830451F3333453823 + 4242042400051818254142000000000F81818383731D25251A24181824182400 + 04180036192618182F302330508EA7BEA9A2BF400E6005ABB0961E1E13130E0E + 370A2206C36013371E371316AAA50D8E2206B6A0317590934125054F000E3150 + 501A2525251A2424242525250000004C4C8383837382251A251A1A2418182F26 + 26181819192F24263026301A60A7D7A78EAA1E130906AE96101E1E1313A11E16 + 160815BF09160D4D139037ACA51E96BE06B06072908FA350122727500527000B + 4F4F25242F24241825411A000000000783838373738225000524012F05260037 + 1826263026303026302F63A2D1A2969C13160EA8B00E10A1371616371E37100E + B0B00E164D1690161EAAA50A8EB605B240904E9EA55018000525000E41414125 + 25414242241A252424240000004983834C73944A252F19303030282830303028 + 261819284544303323459EAABDA2093716010A2E060B1313130E400A37131313 + BFA02C131690164E0E8EA08E15BE05B2A14E4B97985011000424000F18261930 + 4478422F2F421A24251A24000000004B94834C73905E9278922F2F2630302845 + 28304430454528331F4542928B97A68E6009131609060804049622A4B5B10A16 + 161696B00E1613164E3550278A1507BEC9062C4E683130180F1818000526000C + 182F2F2F24241A25259798980000005581814C2D4E5B78787823452830523023 + 30523044442F242424231B2352682C4008A8A022C8BEBEA49FA4152207AF221E + 0113A4A40A16167225255050638E06A9B4603793978B4118182626442626262F + 2F414F414F000425000350509800000000518394737373677C676757576B5748 + 7C487C55565633383830230C293423191B2811A015A707BED6C9B9B9A2220506 + 060E1616A08E0D9072413124244242276015A02C909E97784F241A4141242441 + 41252500084F03410000005083837373733C53877B5A7D5A6A6A6A59595A5967 + 595A5A5A47202A3D3A29322A2A1D110806060622BEC8070605050606400D1214 + 212D345555295757576B35270E90739A567C561F1F523838382352300544052F + 02440000000D8381732D4C67538D6453595858000466003853655454585A5859 + 3D3C597E8D7B5858476229120806A42EC6A706050505A215090A12173D467B66 + 203B3A58876C5E489467677E6658473B063A000432323939065703340000004B + 4C947373835C7A7B5858585353534343435358585358665A667E7D8665647B64 + 76848D6C2917211260A82205050606A08E400A0C837A66647B39463239648479 + 67583A43645343663A434300095300085858583A3A5A4747000000096281732D + 736A797A65000458043A00454353583A3A5866476566877E6658536566645832 + 5A623F5D06060505A2B196A11E1317627C8D7B798459473A437651533A8D5364 + 583A582053534343433A535343433A3A3A000658000000098380832D736C8686 + 8600083A003B43586643323A3A3A6658585A5A473A476B5D533A7B647B3A0805 + 0506A4B0A0A1131612559966587D9B795A5A435351665854585A473D3D3C6659 + 59000465000C536554595958584747666666000000136287624C83623C3D2A66 + 665353534353533A3200063A00435F6C5A5A5A666658473B2A477B66463F0808 + 100AB2C90514401E104E46434720585354575779546559595A7E7E7E5A666565 + 65676565597D585853585847475A585858000000001162814C4C7362463D2058 + 5358535358535300083A00365A4747475A5A666647473B4758533B2008080412 + C0B12206A88E0E90878C8D3B66665853535364665858667B7B66665866585353 + 534305530558000343433A00000000134C814C2D835F54473A43435358585358 + 583A3A000658013A0558003D666665473A47543A5F1706150E0A96B9A7229F2E + 056885897947536666667B6666665353585353533A4364535343434353436553 + 646464535454434343000000000D4C4C2D2B736D796632544358580004660858 + 00223A3A3A5858535353515846475447620F03A20814B1C960400E0B0B173243 + 39583951055305430004323939390643000D5353517653646453534351515100 + 000000114C4C2D2D838879644343535866667B66660004580166075800275358 + 435376653966537E811806220515BBB1402737164E4C39768939793979544343 + 433A4343430005320003434332000543000B7676515353536464535353000000 + 0012834C4C2D836C79644358586666665A6666660758002B4758585853536554 + 6454465A53876C190607068EB1A00E2C374D4D5D5791917951515143433A3A3A + 53535300044301530443000F393943435353514343535364535353000000000B + 83814C4C836C65663A6666000558046600375858596559474758475858585366 + 3A475A65665A3406220808A04021744E90837976577C9151515353533A3A3A43 + 533A533A53585353530009430008533A3A585843433A0000001983814C83836C + 65663A6666585365655358666666585353596500044700275866665A5A3A5F5A + 7976583B07150514960E0D704D1729325353535751515353533A3A3239393900 + 055400135353545453535366535353583A3A3A32323232000000000B4C4C6262 + 836C675A665A66000A5801470147065A0447001C5A5A47584747475A17270814 + 12122C0D5648545843324353513939510443001B515139793951536447585365 + 54545446473A58585365517958585800000000194C4C4C819462676666665858 + 5853535858536565535858584700045A0447000358585800043A0010584C1F1A + 1212314F9267595A6653514304510543015306510003534758000453000D583A + 5858586453535151585853000000000A4C4C8383948167585864075300077954 + 51546558590006580153045800125354435454548D5A4648486B6B7C5A7E7B66 + 0443000351515100045300055153514351000443000B32435151514343323939 + 3900055103430000000983624C83948167545800085300235165655353534354 + 535353656565536564535353655365653953664354666665535353000A51000B + 5353435143435153514343000439015107390007513939513232430000000009 + 83628381838157543A000853000B655364585358535365656500045301650453 + 001266646666536466583A5343395154515153530851000F4353433943434351 + 433943514343510004430151065303430000000A8362836283816754533A0858 + 00076658665847585800045300075853585853585800055A0009583A3A58583A + 3A3A430006530019515351393939515353435139435353435143435151513951 + 4300085303660000000B834C836E8381593A663A3A000A47000E3B3B473B5847 + 584747475A475847065A0008665A58585354433A055300264354435353434343 + 3A585864535154536453395351397979795151515353533A3A46467E5A5A0000 + 000B4C83836E83835A58663B3B000847053B013D0A4700123D473D3D47476765 + 7A65655165534358583A04430003535853000458001C477B6653536666537964 + 6476797951535366585A4747473D3B5A5A5A00000009834C624C4C833D597E00 + 045A046600105A5A5A5858585959473A3A3A47475847045F001E3D3B3B3B583A + 3A43433A3A583A3A43434354544358535358535853536564056600145A765353 + 4343517979543A585A3D3D2A2A3D3D3D00000162044C0007735F465A58586600 + 1358000C475A5F5F5F5A4747473A5858043A0009585853434358585353000958 + 04530012517951515364533A43515151395153583A3A043B013A000000086283 + 4C4C4C836246075801530153053A0004533A3A580453000358666600055A0013 + 5858586658585358585866535858586658666600085800095343513939513939 + 51000543000D51513951434343323A3A3A5443000000000B4C814C6273836254 + 3A66660006580008433A43433A583A5808530010595353645366535366585853 + 5358586605530003646666000658000453586453044300155151323243323943 + 39395143514339434353545454000000000D624C4C3F4C835F67545858585300 + 0458063A0158013A045300176553655379546565535353515353583A3A585858 + 4343430006530012585853585853586453434351537653434332094300075143 + 53645353530000000014834C623F4C833F543A3A54433A3A543A3A583A3A0658 + 0753000B5479544343514343535343000553014301510443045301430453000B + 4351515139434351433A43000953000343434300055300000183044C0004835F + 545A053A014701580947000358585800053A0009543A3A533A3A3A4343000453 + 000B4343534343435343535353000843055100054343433A3A000553000C5858 + 535853547951655353530000000C4C814C4C738362477E5A5A5A055F0005473D + 3D473D000547063A00085858475858583A3A0753014305530B43001B79767676 + 5151433A325454795151433A3A47583A5454675454543A00000000098383834B + 83943D3D6C00053D00065F5F5F5A5A660559000347474700055A0547000C5859 + 3A54543A54543A58583B043A00065858586553640466000D586658583A433A3A + 3A32323243000451000B434343323A3A323A433A4300000000094C6262618394 + 493D6C00075F00095A6C5A5A6A596A597D000747065A000B474747583A545454 + 585858000447000458583A54075800063A5353534343063A0010435353767643 + 434353583A3A3A433243000000094C4C4C6E838349476C00075F00093D6C5F5A + 5A3D47473D00044701660A5A00114758583A533A5858473A5858585358666600 + 0547000A3A3A3A53515143434353044300105151765151514343435353533A43 + 4332000000084C4C834C94836146055A0447015A015A064700083A5858474758 + 4747085A065800045A66545405530009645458535353434343000551000B5353 + 53435139513979797900043900075151545143434300000000094C4C734C8383 + 615458000447043A01470147053A01470143073A00034747580005470758000E + 6666665853657979793951515153075104530651000539513939390004510004 + 79585858000000094C3F4C3F838359675400083A00115343434354433A3A433A + 43433A433A3A3A000D58000A475A475A58585454515404510476000351515100 + 0D53000B3A43535353646465585858000000000A3F2B2D6283836A595443073A + 0743000353434300043A000758583A3A3A583A000958001D66583A3A3A58475A + 5A66323A3A3A434343514343435353583A3A535353000658000A47585A586653 + 645858580000000C3E4C734C73946C66543A3A3A045800035353430004510453 + 00065853585858530958000353533A00045800043D473D47045A00132A2A3B3B + 3A4332324343433A583A3A3A43434300043A000C473B3B475847585365585858 + 0000000B622D739483734C3B64666600055800123A5353534354546554583A3A + 43435353537B0466000358585800085A000F6C6C6C5A5F5A5A5A6C5A5A475858 + 3A000643000353433900044300043A435454083A000353534300000000094C4C + 838395734C46530008580004666666580466000A583A3A324354435343430658 + 000A5958584747475A5A5F5F055A00044747583A04430139074300083243433A + 3A3A4343063A00065858585354530000000D832D4C836E734C46533A433A4300 + 043A000A6666665A665A5A5A473A0A540037433A3A5854545459584747475C5C + 5A5A5A4747583A545454434343394343514351514351433A533A533A3A583A58 + 3A4758475847535358000000001C622B4C8395734C3B533A43433A3A58585843 + 58535858586658583A3A04540005655454435300043A00215959585847473D3D + 59475A5A5A47583A58535351535351514351393951515351530009580147085A + 00000009622D4C958373833B5300085800093A3A584758475959470008580003 + 66665A00044700125A5A7E5A5A5F5F5F475A5A5A5F5A47586666055301510143 + 0651015301530458000866476647475A5A5F045A017E015A0000000D494C4C83 + 9573733B5358585847000558001C475A5A6C6C5F5A47475A4766665A66535858 + 5A5A5A6C7E87876C6C6C055F00115A5F5A5A5A47586643534343433951435300 + 04510009533A535858585A5A66000B5A00000014492D4C839573833B53585847 + 5A475A5A5A475A5A056C055A000A586659656559665A5A7E046C075F065A0005 + 3A3A3A433A00044304530016544365583A585866665A5A5F5F5F6C5F5F475C5A + 5A5A0000000D5F2D4C839573833A435454585800045A0003475A5A00046C0011 + 5F6C6C7E5A5A59545459585858475A474700045A045F002B5A5F5A5A475A475A + 473A3A3A5858535343585358533A5454433A535847475A5A5A5F6C6C5F6A5C59 + 59475A00000000153F3683946E738359763A3A3A583B3D2A3F857D7D5A00046C + 00115A3D3C3C3C597A7A7E7E47473A3A47476C00065A002C6C475A5A6A6A8888 + 887E7A65585A473A3A79645A5A474654535A66645A3D3D5A8D877E6C5F5F5A7D + 653A5366000000153E364C8371738367794343535353473B3D7D6A6A5A00056C + 00425F5F3D5F5A7E8D5A584747475F5F6C5F5F5F6C5F6C5A5F5F5F6C81808080 + 7F876665475A533A5351645A5A475858665864665A3D3B587B65595847475859 + 6532323A0000003349364C837173836779535353515151543A5C5A5A5F5F5F62 + 6C6C6C5F5F5F6C8787596A5C5F6C6C81815F6262626C62625F62620004810025 + 80806C5A5958665353647953665A4758667B5858647E3D3B54795443433A3A58 + 536458585800000000123F4C83839573945479434351517951533A5A045F0046 + 3D5F625A5A5F5F5F6C6C6C6D626C81814C4C8162624C814C4C62624C4C838383 + 814C81813D595364645376515358583A5858665853667B5F3B54795153433A3A + 536484666466000000114B4C838171738367763A3A32545143584700045F043D + 000A5C47595A5A5F5F6C81800481000362628300054C002D81834C83834C4C4C + 8181815F547664766464515353583A434353536464663D3D6676765353533A43 + 538443434300000000226E4C626E6E734C79763A3A3243433A58475A5A6C5A47 + 3C473D5F5A5A5A7E5F6C6280048100084C816283838183810583000B4C4C8181 + 816C6C476553760005530019433A4343435143536453475F66765353533A4343 + 51513932390000000021804C626E6E738357763A3A535376535364665A7E5A58 + 47475A6C6C7B665A6C626200088104830181058300108181818781816C585176 + 7664433A765104430015535354537653475F6679645353434354397932394300 + 0000000C7F2B626E95734C57845353640576001065665A5A66585A7E6C6C5A7A + 7D5A62620681016204810030838383818183838381818187877E535176765343 + 32765151434353646439517653475A537976516553535479794343430000002D + 4B4C624C83738379765353534343323939535353434353535366585353585866 + 665A5A5A665A5A5A585A5A6C6C00048700086262626C6C6C5A58045300076476 + 51515353530005510653000D43437965645A3D3B4646545439000000000C2B2B + 4B4C957383657653535305430153015305430003534351000454000C53533A43 + 54433A43545467670454000B595946463C585866536543000453000551515153 + 5300065101430553000D43437976665A5A474747585343000000000C2B366E83 + 7373835964434343073A0443015301430754000A43433A3A583A585843590454 + 001559545946585853536464643A3A3A545454655358530007430453000E4343 + 54765165585A5A5A66665853000000031D3F4C000473000C675143435343433A + 3A3A5858043A0008433A43435353435306580166045A017E075A00087E7E7B5A + 66667B47053A000353535800073A001353535358585343437979795453586453 + 58585800000000113E4B4C947373733C6558585358583A3A3A0010580006543A + 433A543A05580166045A002B3B3D5F5F3D4747473D4747475858475847473A3A + 475847475858666666585858646554545458536553595300000000083E364C73 + 714E735F045800093A583A3A3A5847475A000447013A07580454000E433A4343 + 5454543A3A585858463B063D00045A5A5A47045A00074758475847474700095A + 000B7B664747475A6666596558000001} + end + object GroupOrigFileset: TGroupBox + Left = 0 + Top = 72 + Width = 537 + Height = 73 + Caption = 'Original Fileset' + TabOrder = 0 + object Label3: TLabel + Left = 15 + Top = 20 + Width = 54 + Height = 13 + Caption = 'Original file:' + end + object Label4: TLabel + Left = 11 + Top = 43 + Width = 59 + Height = 13 + Caption = 'Modified file:' + end + object EditOrigFile: TEdit + Left = 72 + Top = 16 + Width = 433 + Height = 21 + ReadOnly = True + TabOrder = 0 + end + object EditModFile: TEdit + Left = 72 + Top = 40 + Width = 433 + Height = 21 + ReadOnly = True + TabOrder = 2 + end + object ButBrowseOrig: TButton + Left = 504 + Top = 16 + Width = 25 + Height = 21 + Hint = 'Browse...' + Caption = '...' + ParentShowHint = False + ShowHint = True + TabOrder = 1 + OnClick = ButBrowseOrigClick + end + object ButBrowseMod: TButton + Left = 504 + Top = 40 + Width = 25 + Height = 21 + Hint = 'Browse...' + Caption = '...' + ParentShowHint = False + ShowHint = True + TabOrder = 3 + OnClick = ButBrowseModClick + end + end + object GroupNewFile: TGroupBox + Left = 0 + Top = 152 + Width = 537 + Height = 65 + Caption = 'New File' + TabOrder = 1 + object Label5: TLabel + Left = 29 + Top = 19 + Width = 41 + Height = 13 + Caption = 'New file:' + end + object EditNewFile: TEdit + Left = 72 + Top = 16 + Width = 433 + Height = 21 + ReadOnly = True + TabOrder = 0 + end + object ButtBrowseNew: TButton + Left = 504 + Top = 16 + Width = 25 + Height = 21 + Hint = 'Browse...' + Caption = '...' + ParentShowHint = False + ShowHint = True + TabOrder = 1 + OnClick = ButtBrowseNewClick + end + object CheckBackup: TCheckBox + Left = 72 + Top = 40 + Width = 97 + Height = 17 + Hint = + 'Creates backup of original new file. File is saved as ' + + '.BAK' + Caption = 'Make Backup' + Checked = True + ParentShowHint = False + ShowHint = True + State = cbChecked + TabOrder = 2 + end + object CheckExtSearch: TCheckBox + Left = 192 + Top = 40 + Width = 105 + Height = 17 + Hint = + 'Searches modifications in new file until the end of the file. Ca' + + 'n take very long with huge files.' + Caption = 'Extended Search' + ParentShowHint = False + ShowHint = True + TabOrder = 3 + end + end + object ButtSmartPatch: TButton + Left = 208 + Top = 400 + Width = 129 + Height = 25 + Caption = 'SmartPatch!' + Default = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 2 + OnClick = ButtSmartPatchClick + end + object LogBox: TListBox + Left = 96 + Top = 240 + Width = 441 + Height = 145 + TabStop = False + Ctl3D = True + ExtendedSelect = False + ItemHeight = 13 + ParentCtl3D = False + TabOrder = 3 + end + object ButtExit: TButton + Left = 448 + Top = 400 + Width = 75 + Height = 25 + Caption = 'Exit' + TabOrder = 4 + OnClick = ButtExitClick + end + object OpenDialog: TOpenDialog + Filter = + 'All files (*.*)|*.*|Windows (*.exe)|*.exe|Symbian (*.app)|*.app|' + + 'PalmOS (*.prc)|*.prc' + Options = [ofPathMustExist, ofFileMustExist, ofEnableSizing, ofDontAddToRecent] + Left = 224 + Top = 16 + end +end diff --git a/USmartPatcher.pas b/USmartPatcher.pas new file mode 100644 index 0000000..8923638 --- /dev/null +++ b/USmartPatcher.pas @@ -0,0 +1,349 @@ +unit USmartPatcher; + +interface + +uses + Windows, SysUtils, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Classes, Graphics, StrUtils; + +type + TFPatcher = class(TForm) + Label1: TLabel; + Label2: TLabel; + GroupOrigFileset: TGroupBox; + Label3: TLabel; + Label4: TLabel; + OpenDialog: TOpenDialog; + EditOrigFile: TEdit; + EditModFile: TEdit; + ButBrowseOrig: TButton; + ButBrowseMod: TButton; + GroupNewFile: TGroupBox; + Label5: TLabel; + EditNewFile: TEdit; + ButtBrowseNew: TButton; + ImgLogoRiddickTop: TImage; + ButtSmartPatch: TButton; + LogBox: TListBox; + Label6: TLabel; + CheckBackup: TCheckBox; + ButtExit: TButton; + ImgLogoRiddickLeft: TImage; + CheckExtSearch: TCheckBox; + procedure ButBrowseOrigClick(Sender: TObject); + procedure ButtExitClick(Sender: TObject); + procedure ButBrowseModClick(Sender: TObject); + procedure ButtBrowseNewClick(Sender: TObject); + procedure ButtSmartPatchClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + FPatcher: TFPatcher; + +implementation + +{$R *.dfm} + +const + PreAftLen: integer = 10; + PreAftSrc: integer = $4000; + +type + TModRec = record + Offset: longint; + Length: longint; + Orig: AnsiString; + New: AnsiString; + Pre: AnsiString; + Aft: AnsiString; + end; + TModRecA = array of TModRec; + +var + Mods: TModRecA; + +procedure Log(x: string); +var i: integer; +begin + while (FPatcher.LogBox.Count>500) do begin + FPatcher.LogBox.Items.Delete(0); + end; + i := FPatcher.LogBox.Items.Add(x); + FPatcher.LogBox.TopIndex := i; +end; + +function Dec2Hex(d: longint): string; +const hexset: string[16] = '0123456789abcdef'; +begin + Result := ''; + while (d>=16) do begin + Result := hexset[(d MOD 16)+1] + Result; + d := d DIV 16; + end; + Result := hexset[d+1] + Result; + if (Length(Result) MOD 2=1) then Result := '0'+Result; +end; + +function FindModsInFiles(g1,g2: string): TModRecA; +var f1,f2: file of char; + Buf1, Buf2: array[1..64] of char; + i, i1, i2: integer; + o: longint; + lastinequal: boolean; + resi: longint; + Last10, Next10: AnsiString; +begin + try + AssignFile(f1,g1); + AssignFile(f2,g2); + FileMode := fmOpenRead; + Reset(f1); + Reset(f2); + repeat + if (FilePos(f1)<>FilePos(f2)) then begin + Log('ERROR while reading! File positions are different. Aborting.'); + CloseFile(f1); + CloseFile(f2); + Exit; + end; + o := FilePos(f1); + BlockRead(f1,Buf1,SizeOf(Buf1),i1); + BlockRead(f2,Buf2,SizeOf(Buf2),i2); + if (i2<>i1) then begin + Log('ERROR while reading! Different sized blocks were read. Aborting.'); + CloseFile(f1); + CloseFile(f2); + Exit; + end; + lastinequal := false; + for i:=1 to i1 do begin + if (Buf1[i]<>Buf2[i]) then begin + if (lastinequal) then begin + resi := Length(Result)-1; + Inc(Result[resi].Length); + Result[resi].Orig := Result[resi].Orig + Buf1[i]; + Result[resi].New := Result[resi].New + Buf2[i]; + end else begin + resi := Length(Result); + SetLength(Result, resi+1); + Result[resi].Offset := o+i-1; + Result[resi].Length := 1; + Result[resi].Orig := Buf1[i]; + Result[resi].New := Buf2[i]; + Result[resi].Pre := Last10; + // Result[resi].Aft := Next10; + end; + lastinequal := true; + end else begin + if (lastinequal) then begin + Last10 := ''; + resi := Length(Result)-1; + Log('Found '+IntToStr(Result[resi].Length)+' different Byte(s) at Offset 0x'+UpperCase(Dec2Hex(Result[resi].Offset))); + end; + lastinequal := false; + end; + if (Length(Last10)>> Found '+IntToStr(Length(Result))+' different areas.'); + except + on e: Exception do Log('Exception: '+e.Message); + end; +end; + +function ChangeNewFile(g: string; m: TModRecA): boolean; +var f: file of char; + i,j: integer; + o, lo, mo: longint; + Last: AnsiString; + Buf: char; + foundit, missedany: boolean; +label NextTurn; +begin + try + missedany := false; + AssignFile(f, g); + FileMode := fmOpenReadWrite; + Reset(f); + Last := ''; + o := Mods[0].Offset - PreAftSrc; + lo := 0; + if (o<0) then o := 0; + Seek(f,o); + for i:=0 to Length(Mods)-1 do begin + foundit := false; + NextTurn: + if (FPatcher.CheckExtSearch.Checked) then mo := FileSize(f) else mo := Mods[i].Offset+2*PreAftSrc; + while (FilePos(f)2) then begin + Mods[i].Pre := RightBStr(Mods[i].Pre,Length(Mods[i].Pre)-1); + Log('Pre not found. Dropping one byte... (now '+IntToStr(Length(Mods[i].Pre))+' bytes)'); + if (lo>0) then o := lo else o := Mods[i].Offset - PreAftSrc; + if (o<0) then o:=0; + Seek(f,o); + goto NextTurn; + end else if (NOT foundit) then begin + Log('Couldn''t find this mod. Trying next one...'); + missedany := true; + end; + end; + CloseFile(f); + if (NOT missedany) then Result := true else Result := false; + except + on e: Exception do begin + Log('Exception: '+e.Message); + Result := falsE; + end; + end; +end; + +function CheckFileSizes(g1,g2: string): boolean; +var f1,f2: file of char; + s1,s2: longint; +begin + try + AssignFile(f1,g1); + AssignFile(f2,g2); + FileMode := fmOpenRead; + Reset(f1); + Reset(f2); + s1 := FileSize(f1); + s2 := FileSize(f2); + CloseFile(f1); + CloseFile(f2); + if (s1=s2) then Result := true else Result := false; + except + on e: Exception do begin + Log('Exception: '+e.Message); + Result := false; + end; + end; +end; + +procedure TFPatcher.ButBrowseOrigClick(Sender: TObject); +begin + if (Length(ExtractFilePath(EditOrigFile.Text))>0) then OpenDialog.InitialDir := ExtractFilePath(EditOrigFile.Text); + OpenDialog.Title := 'Select original file from old version'; + if (OpenDialog.Execute) then begin + EditOrigFile.Text := OpenDialog.FileName; + Log('Original file: '+ExtractFilename(OpenDialog.FileName)); + end else Log('Aborted OpenDialog. (Original file)'); +end; + +procedure TFPatcher.ButtExitClick(Sender: TObject); +begin + Application.Terminate; +end; + +procedure TFPatcher.ButBrowseModClick(Sender: TObject); +begin + if (Length(ExtractFilePath(EditModFile.Text))>0) then OpenDialog.InitialDir := ExtractFilePath(EditModFile.Text); + OpenDialog.Title := 'Select modified file from old version'; + if (OpenDialog.Execute) then begin + EditModFile.Text := OpenDialog.FileName; + Log('Original modified file: '+ExtractFilename(OpenDialog.FileName)); + end else Log('Aborted OpenDialog. (Original mod file)'); +end; + +procedure TFPatcher.ButtBrowseNewClick(Sender: TObject); +begin + if (Length(ExtractFilePath(EditNewFile.Text))>0) then OpenDialog.InitialDir := ExtractFilePath(EditNewFile.Text); + OpenDialog.Title := 'Select file with new version'; + if (OpenDialog.Execute) then begin + EditNewFile.Text := OpenDialog.FileName; + Log('New version file: '+ExtractFilename(OpenDialog.FileName)); + end else Log('Aborted OpenDialog. (New ver file)'); +end; + +function Backup(f: string): boolean; +var t: string; +begin + t := ChangeFileExt(f,'.bak'); + Log('Backup to: '+t); + if (FileExists(t)) then begin + Log('File exists! Let''s hope that this is an old backup of this file. Skipping backup.'); + Result := true; + end else Result := CopyFile(PChar(f),PChar(t),true); +end; + +procedure TFPatcher.ButtSmartPatchClick(Sender: TObject); +begin + if (ExtractFileName(EditOrigFile.Text)='') then begin + Log('ERROR! Please select the original file of the OLD version!'); + Exit; + end; + if (ExtractFileName(EditModFile.Text)='') then begin + Log('ERROR! Please select the modified file of the OLD version!'); + Exit; + end; + if (ExtractFileName(EditNewFile.Text)='') then begin + Log('ERROR! Please select the original file of the NEW version!'); + Exit; + end; + if (EditOrigFile.Text = EditModFile.Text) then begin + Log('ERROR! Please select different original files!'); + Exit; + end; + if (EditOrigFile.Text = EditNewFile.Text) OR (EditModFile.Text = EditNewFile.Text) then begin + Log('ERROR! New version file can''t be the same as old version file!'); + Exit; + end; + if (NOT CheckFileSizes(EditOrigFile.Text, EditModFile.Text)) then begin + Log('ERROR! File sizes of original files differ!'); + Exit; + end; + Log('No errors until here. Start modification parsing...'); + Mods := FindModsInFiles(EditOrigFile.Text, EditModFile.Text); + Log('Done finding differences in original fileset.'); + if (CheckBackup.Checked) then begin + if (Backup(EditNewFile.Text)) then begin + Log('Backup done.'); + end else begin + Log('ERROR! Could not backup file. Aborting...'); + Exit; + end; + end else Log('Skipping backup of new file.'); + if (ChangeNewFile(EditNewFile.Text, Mods)) then begin + Log('Done making changes to new file. File should work now!'); + end else begin + Log('ERROR! Could not apply all changes to new file.'); + end; +end; + +procedure TFPatcher.FormCreate(Sender: TObject); +begin + Log('Welcome to SmartPatcher by riddick'); + Log(''); + Log('NOTE: You can damage your files - use this app wisely!'); + Log(DupeString('-',140)); +end; + +end.