diff --git a/components/gridprinter/examples/multi-language/main.pas b/components/gridprinter/examples/multi-language/main.pas index b319849d1..e7b8bca76 100644 --- a/components/gridprinter/examples/multi-language/main.pas +++ b/components/gridprinter/examples/multi-language/main.pas @@ -111,7 +111,7 @@ end; procedure TMainForm.FormCreate(Sender: TObject); const NUM_ROWS = 100; - NUM_COLS = 20; + NUM_COLS = 15; var i, r, c: Integer; begin @@ -140,8 +140,6 @@ begin finally StringGrid1.EndUpdate; end; - -// GridPrinter1.PrintScaleFactor := 0.5; end; { Populates the languages combobox: reads the names of the app's .po files diff --git a/components/gridprinter/source/gridprn.pas b/components/gridprinter/source/gridprn.pas index e098ae7b1..fe68758e1 100644 --- a/components/gridprinter/source/gridprn.pas +++ b/components/gridprinter/source/gridprn.pas @@ -222,6 +222,7 @@ type function CreatePreviewBitmap(APageNo, APercentage: Integer): TBitmap; function GetCellText(ACol, ARow: Integer): String; virtual; procedure Print; + procedure ScaleToPages(NumHor, NumVert: Integer); function ScaleX(AValue: Integer): Integer; inline; function ScaleY(AValue: Integer): Integer; inline; procedure UpdatePreview; @@ -270,7 +271,7 @@ function px2mm(px: Integer; dpi: Integer): Double; implementation uses - LCLIntf, LCLType, Dialogs, OSPrinters, Themes; + LCLIntf, LCLType, Dialogs, OSPrinters, Themes, Math; type TGridAccess = class(TCustomGrid); @@ -1686,6 +1687,32 @@ begin FFixedRowPos := round(fixed); end; +procedure TGridPrinter.ScaleToPages(NumHor, NumVert: Integer); +var + i: Integer; + hFixed, wFixed: Double; + hTotal, wTotal: Double; + hFactor, wFactor: Double; +begin + if (FGrid = nil) or (NumHor <= 0) or (NumVert <= 0) then + exit; + + FPrintScaleFactor := 1.0; + Measure(Printer.PageWidth, Printer.PageHeight, Printer.XDPI, Printer.YDPI); + wFixed := FFixedColPos - FLeftmargin; + hFixed := FFixedRowPos - FTopMargin; + wTotal := NumHor * wFixed; + for i := FFixedCols to FColCount-1 do + wTotal := wTotal + FColWidths[i]; + hTotal := NumVert * hFixed; + for i := FFixedRows to FRowCount-1 do + hTotal := hTotal + FRowHeights[i]; + wFactor := (NumHor * FPageRect.Width) / wTotal; + hFactor := (NumVert * FPageRect.Height) / hTotal; + FPrintScaleFactor := Min(wFactor, hFactor); + if FPrintScaleFactor > 1.0 then FPrintScalefactor := 1.0; // do not magnify +end; + function TGridPrinter.ScaleX(AValue: Integer): Integer; begin Result := Round(FFactorX * AValue); diff --git a/components/gridprinter/source/gridprnpreviewform.lfm b/components/gridprinter/source/gridprnpreviewform.lfm index c047fd6f1..efa2b9046 100644 --- a/components/gridprinter/source/gridprnpreviewform.lfm +++ b/components/gridprinter/source/gridprnpreviewform.lfm @@ -284,314 +284,323 @@ object GridPrintPreviewForm: TGridPrintPreviewForm Left = 248 Top = 56 Bitmap = { - 4C7A140000001000000010000000240700000000000078DAED5C496C1C4514FD + 4C7A1500000010000000100000005B0700000000000078DAED5C496C1C4514FD 8030706493301C584F5C38800411041002895D8845700185C00121B8B1078908 - 14084BE016842276057B7AC64062E10304710202462CB6C70E70182908010978 - 146C8958301EFEAB5439E572557755577B3CB6FBF0D5DDD5F57EFDFA4BF5AFEA - EA6EB7DBD42E88C6126AFB501ADEA78DAC7BA315DA68B689325F7CA7DBE7B266 - 966E2C3A6E9AED86C8AF1D9BBE76B350D3A7CDACBE2C173CD76D484CA3C0F6A3 - F4DF2E307E4DAA57E92950086624A1CBEA099D20FBF71948F0E232DC73B69550 - 0FB7F5AEE85795EE37F128C33DAEF7CE37AFD1D1165D6E679AE5387B2249E828 - 138F32E6F124EAA01D1D3B5AA59B25EFC70C9E73F8B9BACC1F75C72B7493566F - 3753BDBD918ECCC20B39129A60FA1CD73FBE472709998CB65D782143421BB8BC - 35B29D8EAFD7E84229CFB50BF055BA03B4A0BC42378831A94617283CEBE41A5F - 1BB3BEAE57F889F7E944C8CF3C1FF5F62BEEABECB3F293DDDCA751537F3692FA - AB73FD2F357EB7CA31F621CFB6DBB0F9E1723A82AF2BD029F37DD826876897FB - 883AF035F37EE34D3A56F268A32FE0039D82D8068F4066E1DB15EAFB79888E49 - 89B9DBB8DED742A787E31CE75F31F6165F1D7F9BD0C91C6F6B40385FCC71A29B - 88F5F41DEB699BC5EEE7728C5CEA39260F1B63DA1A2E3BE033DE9A780DDB6219 - D685E0352CC6B5FB029E29C3137D74866A97B1EB039F49D1F858F98BD05F4EFB - 45F94F49DD476CBB1BF7F4D1A93973A04D3237D89A17CBB4F78784CE0C1AC72A - F48CC28EF6D3D981FD7D202FB608BCCC3D9E963C7E617EE7C4E83E8FFE8AB05F - 11FE5352E709B682CD22ECBD55E6C49BF2E0E1ABF0D9181EE30374BA9A6F328F - 17F3F040EC6A723CD849FC3CF9137AA193FA8BB55FACFF94B474841C0DB99AE5 - 79BA0DB99D47FE87F59803C8198DF2619FB51EE4A8728E388F872F5E3EB3EE96 - 3CA6D59A49085EAE53AC5772C878EA185E975FE5CC9DD25FACFD62FD67B9D3C8 - 009DC5B9DBBD62AD838FB8F6C1C975AC2AD36F8C7B8B69B338E23AA104F733B0 - 3F01F34542C7E9F770CDB23C8FFB2E1EE0CFF49CB14676A7918F6E463D6B7F59 - 46ACDFA4ADF30B39B89EA90FA12BEEA7CF7B02D463B9EE3162E5718EB56735DF - 5FB0CEABE6BDA887FAB9DBAFD0DB66FBAAFFA6DE5DFDB7E5E162DD8B6D94A67F - 96FB552E1BB4D94FAE213AED2F9FE7B38C3FC8745D8A0F25C2DFB89FC2DE3826 - F43BDAE5E341A94F270FD3FFA12BD55F96E16AC6FE2379CCE4C90FD0AE21C755 - 913C06733E23AF04D6B69EB152E2DF127B41F16F5268FC3B64E858FC3BD614BC - E3DFD57FDFF8B7E40465FC2F83F857EF365DEF3F8B783F9EF16ED5871A45B75F - E24BFC0AF1DF46CE7B69FB105A3CC65F1EA337A63F78CCBC222F9EB197A4F1D0 - F7B5987B8DD4318D4706DED44D2B8F6D52737347FB69FD29DBEFBEF69750FE66 - B7EC1BCAF9DE7E458C3F69F77CC61F4FDD2CDAF823E4C49EA07E3A6FEE1E9FA3 - CC070F3B71FFF6E9F5718E3265C38CF8F9D7E5079CFBFEB7D8ED47F4BF11A0FF - 46B7AEFF39F298CCF8F3D893911A7F59F8ACF853B6878F98B2FAC4DF783F5D04 - 1F916DEDC37550FC491F1178C37FCA1CD963FC89D45F9AFD7C6574F94FCC58DB - 69BCE73CA4593E7F97F4F9DB584C9F907BF776619DCA61CF19F6F34FF08EDE86 - E7F34FB14F167BB25D7BB5B10F1A3C1C78AC8FF52006B1FF478F51758D3DB0A8 - E7C0B7D59830AFDCBC0E3867593F0AC5D8ECE2899951BA53B6D6DA6F78F47F17 - F49BAAFF8436F0F163D347B1560CBBC23669F607D6B07F19FF5D927F97F812BF - 5AE6FF8172B75CB97DDE794828DE1C43F2D84DE711886F1AEF055BABE9FBBB2E - C54F467CBF37B962BEBBA9D25D6699C871AAF4B2D4D124CE5DDF3E39F6ABBCC2 - E53BD8CF4FE15CA597CF778247C0983805ACB627B597F17FC78CC92E7F29F14B - 8E9F4D2B435E8CBC598E9B3DE6B7449C6F4FC33FF43DC0F01F8D578DE94319B7 - 38D60CFF879F0F0227B1D873B045CFD975BC99DBCBF9C016A63F99F6B33C2F99 - 7544DE5FA5D75DF38265FC7DCEBA8031733A6D1CF1D897DE6BDA26CFFE70D829 - 12BF3F023B08FF98E73B87C6CA690FFD4D99BE257D77873E56063E0727F36225 - FE2F1FBCDC933C60FABF947FA71EBF36C277E33C2FFE007371DD7FB4E7D494AF - 1FB22C6F84F6D3D57EE09EEC81C58A7FCF5CBCE9332FF15D4F291A5FD4FF4702 - D683EAB6F74A99EB518C01D69C0BF850BD4A6BF53908BE35E7EB5F7DDB17DFF5 - E13BF743FBF2D6DAE62269E786CCF3FAEFAB7FD5FFD5EE3F05E39B45CDFDB9DE - 98B2ABB4D558D05825DFC38AFF2068EF5E4379C0AFD3B045FEBF26CF7911F858 - 2AE58FC22FDAFF77A4FFEECDEBFB31F1131ABFE5FA7F77BEFFC3FF7BF03F9991 - 84CE07E1DCFA4F1F071EDF0EE39B01F9CFA1099CDBBE2736F1DCCEEDA8C7E543 - F857CEF7099D0692FF4A1AC23DD449C18F8A6F1BB8BE7C1F398039B37837C565 - E21EFEF9E3C0A3AF6CA73D72BE56E3F9CDC5D27EE0D18B7BA8E38B0756E63A55 - 1FBC45FE9AC47AC91FABBF1CF66BDABE1BC9F29FFF013CF7E9DB + 14084BE016842276057B7A6680D8C20708E204048C586C8F1DE03052100212F0 + 28D812B1603CFC57AE766ACA55DD555D3DE3B1DD87AFEEAEAE57F5EB2FD5BFB6 + 6EB55AD4CA8926226AB95012DEA58EB477E325DAACD78934577CB7EBE7B4469A + 6C0C326EE8F5FAF0AF5C1BAE7A3350C3A5CEB4B6AC143CE7AD4B4C3DC7FA83E4 + DFCAD17F75AA95E929900F662CA2CB6A119D20DBF7194894C5697867AD2BA23E + AEEB5DD1AE32DDAFE39186779CEF9D6F5EA3A30DB2DCC934CF7EF64414D1513A + 1E695CC693C8837A54EC78996E96653FA695B9885FCCCBE523EF64896E52F2ED + 61AAB536D3916978C14744534C9FE3F9C7F7E824C19356B70D2F78886813A737 + C776D2F1B50A5D28F9B97609BE4C778096A497E806D12755E88218CF32B9C655 + C72CAFEB63FCD4FB7422F8E7321F75B62B6EAB6C736C277BB84DE3BAFC4C24E5 + 57E3FC5F2AE5DD2AFBD8871CEB6E41E787D3E9087E2E41A65CEEC3263E44BDDC + 46E481ADE9EFEB6FD2B1B28C16DA8272205310EBE011F02C6CBB44033F8FD031 + 093E771BE7FB5AC8F4B09FE3FE2BC6DEE22AE36F233A99FD6D1D08F79DEC277A + 89584EDFB19C7618F47E2EFBC8A58E7DF2A8D6A7ADE3B4832EFDAD8E57B04DE6 + 61830F5EC1A25FBBCFE39B323A354067C4F53276A3E73729181FCA7F1EF2CBA8 + BF20FB29A8F7887577E3DE013A35630CB445C606DBB36299F6FD10D1995EFD58 + 899E89B1E38374B6677B1FC88ACD032F638FA76519BF7079E784C83E8BFCF2D0 + 5F1EF65350F709BA82CE02F4BD5DC6C45BB2E061ABB0D9903226AB747A3CDEE4 + 325ECC52067C57E1E3C16EE2DBF88FE8856ECA2F547FA1F653D0F2116234C46A + 86EFE90EC4760EF11FE6630E2266D4D2475DE67A10A3CA31625B19AE78F9CDBA + 5B96311BCF99F8E0E53CC5C6980FE94F5DC3ABFCC73173B7E417AABF50FB59E9 + 3456A5B33876BB57CC75F015CF2E38398F5566FA8D716F316D15573C4714E17D + 0AF62760BE88E838F51D9E9997E7F1DE5606CA677A4E9B23BB538B47B7229FB1 + BDCC23E66F92E6F9051F9C4F97879015B7D3659D00F998AF7B345F799C7DED59 + C5F697CCF3C6E35EE443FECCF597E86DBDFEB8FDBADC6DED37C5E162DE8B7594 + 247FE6FB554E1B36E94FCE215AF52FBFE7F38C3FC4745D820D45C2DEB89D42DF + B846F43BEAE5EB21294F6B19BAFD4356717B9987AB19FB8F2C632E4B7C807A35 + 3EAE0A2C6338E337F24A604DF319ABC5FF0DBEE7E5FF3AF9FABF8587AEF9BF65 + 4EC1D9FF6DED77F57F434C50F8FF0AF0FF786DD3B6FE99C7FA78CADAAA0BD5F3 + AEBFC017F85562BFF58CEF92F62134B98FBF3C446E4C7F709F7945563C632F49 + 2A43DDD7A2EF358AAF4965A4E075D934B3E8263136B7D49FD49EA2FEDEAB7F19 + F96FF4CABEA18CEBF6ABA2FF497AE7D2FF38CAA663FD8FE0137B8206E9BCC577 + 7C8F34173CF4C4EDDBAFE6C73DD2621DA6F8CFBF363BE0D8F7BF4ED71FD0FEBA + 87FCEBBD3AFF67896352FDCF614F46A2FFA5E1D3FC2FD63D6C44E7D5C5FF2607 + E922D888AC6B3F9EBDFC4FDA88C06BF653C4C80EFD4FA0FC92F4E7CAA3CD7E42 + FADA6EE31DC7218DE2FBBBACDFDF7A276D42EEDDDB8D792A8B3EE7D8CE3FC11A + BD09CFF79F629F2CF664DBF66A631F34CAB0E0313FD6071FC4FE1FD547E367EC + 81453E0BBE15F7096DE9FAB3C73DF3FA912FC6A41747CC5C2CBB58D74AFD7587 + F6EF867C13E51FD126BE7EACDB28E68AA157E82649FFC06AFA2FFCBF47E2EF02 + 5FE0D7CAF8DF93EFA62DB6CF3A0EF1C5EB7D4816BDA96578E21BDABA60732D9D + BFEB51FC74C0F9BDE95573EEA64C77E96922C629D3CB5246D3B8B79D7DB2EC57 + 7985D377B19D9FC2B14A3FDF0FA10C8F3E710658654F6A3FE3FF0EE9936DF652 + E0971D3F9F9486B81871B3EC37FBF4B3441C6FCFC23ED43DC0B01FA5AC0AD387 + D26F71AD68F60F3B1F064E62B1E7609B1AB3AB783DB697E3816D4C7F321D607E + 5ED2F388B8BF4CAFDBC6052BF87CCE068F3E7336A91F71D897DEAFEB26CBFE70 + E829107F20003B0CFB68B39D85BE72D6417E33BA6D49DBDDA5F6959EDFC1E9AC + 5889FFCB052FF7245775FB97FC0FA9FE6B229C1BE771F107188BABF6A37CA766 + 5CED907979C3B79DB6FA3DF764573BE5FF8EB178C3655CE23A9F92373EAFFF8F + 78CC07D54CEB4AA9F3518C01561F0BB850AD4CEBD53108CE9AF3F3AFAEF58B73 + 7D38E7BEB02F6FBD692C9274AFF1DCD67E57F9C7ED5FEBF69333BE91D7D89FF3 + 4DC47A95BA9AF0EAABE43AACF80F82B2F6EA5B06EC3A099BE7FF6BB2DCE7810F + A582FF207CC7FEBF23ED775F56DB0FF11F5FFF2DE6FF7B73FD0FFFEFC1FF64C6 + 223A1F847BE33F7D2C789C1DC69901F9CFA129DC9BCE13EB78AEE776E4E3F411 + FC2BE7FB884E03C97F258DE01DF224E0C7C5D906CE2FD723AB18338BB5294E13 + EFF0CF1F0B1E6D653DED95E3B50A8F6F2E96FA4319FD78873CAE786065AC5376 + C11BF8AF48AC13FFA1F2CBA0BF86E9DC8887FDF484FFB7F151E2365417E6067C + F6FF2A6943F1BFAE7CF6FF1AF0CEFE6FC2FBEE3FB5E1D5FFCE65C4777CFF6A1E + F5AF707C232D5EE8A5F5BFFF01B62C9E9F } BitmapAdv = { - 4C69020000004C7A140000001800000018000000090E00000000000078DAED5D - 7B8C5647153FF8A82F34DAFA8846A9D51ACB1F9AAA55E3231A88A9D5B61A63C4 - 5751FFB152AD8F6A5BC54745C5061BA849D53F9AA6566B81DDFBED622B8AD152 - 91165A404AD9FD7681025B0AA6B04DA0950281A5ECAEE737F7CCC770B98F997B - E7EEEEB7CC1F27DFEE9DB9BF997BE6CC99333367CE8C8E8ED2E858D23C7A4E5F - 442365885F9F52841F45F45CCE3BCAF4F76627FDD0869017EFA06EB6F8CD88AE - B3FDE6BE065D5F16BF3FA2B3F2A82ABEF02A93AAE2337F6FCCA333853F9C3E60 - BE57863F060DA4E0E3F91ACEFBABB2F2D9D7A9DE5DA3BF2B89CFF5995755FE81 - 61E2731B3D56C4E3B26460AFE06FFBBE5702A62E8BBFCFB79E3CA5CDCF607C96 - B3D9A2FF75BBEEF089BF7529BD91E5643E632C00F1DF5F1973FED4289F75F7AF - D1B1B61FC68B5877F1F7DE09B219475C8971A7197C9D560D8FA6B00C7C19B68D - AE2BE45CE3E36FFD4DCAFEE1BC36B615A87731BD42DB4BA02D1DF4CE2C7CA499 - 32FEC89FE9E5053C389BFBFBC32D3E34E8768C3759F848431E836F1B51BF4C9E - 44B45CF21EE76FFE7C520F9CC61F5DAF067D51BD13A7DF93C62BE80DA31E5F48 - D33359F862075C61E89B2F99691B6FA5E7EB7ECC75F953961ECBC3179DB344DB - 0FAB56D1F35A6537E862A9F789DE6E7A5359FC6607BD99D387955C74D2470CDB - E1376233ACCED3C345F882F580D82ABF369EAD92FACFCFC45F46E7709E6741F8 - 3B472F2F90BADE6BE06F15DE7F2D4F7EF99B3F042A18CFAE92EFEC37F0FBA5CC - AB2A8F2B9DF40DC1EF33F0570A7F6EAA8ACF72BA50B0FE997CC6F57FA8323E63 - 88ADB9B0A57322FAB07CD3486F175D501ABB83A66B5BE294768AE7A4DBA58CBB - 4BF33EA2BF08C6A3491DC1EDF2E956FFE6362AC1F76F1973874F15F4EF61E477 - E0F9B775BFE5F7EECACAB77139BD98F3DC6FD4E36F2C071766EAF32E7A873956 - 70DE7F3F18D18BF2EA8274E33B346DE27ADDC2FDEF7B20FC8D67893C8B77DD41 - 2FB41E6F1BF4497EA7C7C2CED9CCED75798571FD838CF133F08A7F3730ADE767 - 7FC533C6FDC019633F0572EBEF5DF476EE07DF814D54073ECBDF3ED145B765D6 - 6129BD81F32CE23C334AE0EBFEB33C2DBD27A2F338ED71C973C0277E025BD99E - BEF0619B27E6546BB6DD432FF581EF0B3B0DDF27761ABE69B7638CE0B2A65694 - CF31C5AF9B3F75B7EF58C8E758F42F8FFAA156FD56B77E0E1428D0F8905A8B68 - D0CD4573F992F381F359E7FC57F4DABE1AB12BCD6533D66776F91C83DB1D5BEC - 92A6817D1FE6C85EE70135E3D7CD9FC954469DFD6B2CF4C358E8B7408102B50F - 41074017E4EDB9785967629D06DD5603FEDD863EF65E86AC79AF0C655897719F - 51464FBBE0D7C99F76C51E8BFE55B77EA85BBF050A14687C086BAF5883C55A6C - 093F891958FBC51A704E9EDBCACEC3B0662DEF3E8EB5EC8C3CCB4D3F6247FC15 - 865E4E2DA30ABE8C2BFF32CAD803FF1E5FF8366554C52F2AC307BEC8E154D32F - 82E93FED829FC29FDDDA07AC86F6DD6DFA977996CFDD49DFB589DCBF6AD70F35 - EBB7BAF573A0493D6E4FED6FD03765DEB2577C6BF1BB12CFABACDBB2BC7D8E71 - 9E54FE7C0DFA79B34197F546F43EFCB2BCFF02E70798069B9D34AB840F1ECE8A - 1D83FF9EE93F6B129ECBB71DE3DFB90EEBFC9F15EC19693E7119FD1B657CC672 - FC7832CDEF50F5D1888EA6ED638BCFE1BE9E3BE92505BE74F8DEED693CD9B694 - 5E071D83DF345E71DACE227F482527DC96696979F8F27DF34D5FD5AC3928E443 - FFBF29A257612C51C4B2037CFCEA674837F03FC1E94F14E00F31FEFB5BFE8DCC - EF029FC3A3BACDF11EDE2FC0DF5B67FDE10B8DBE538AFF0DFA25A7FFA3403EAF - 46BF74951FF8C5AB73750DFABA85FC0F424E9DE43FF68BDD5B24FFD2576639F6 - DFAF2A3FDD88B672DBBCCBD267752ECA40BFCCD23FE089E9CF2BF4745F07BDDB - 52C7CD9235999DAAED3AE9722583FC2B6DB953C99BF8C4972903FC449F47BF84 - EC41BEF1ABFEE7B6443A78A2304B9661B536149F4F399038D3F4BFFE2E7A6F3B - 95019EA4F0EA40569FF455469931D4A20CCDABFD3EEBDF6A8F6E7A2DEA8DDF60 - FFB487FD9333BFA96CFF589CB9A864FFE4910FFBC7E2DBABD93F29D456F68F87 - FAE7D93F16637625FB27770DC483FD63712EA8B2FD93D17F83FD13EC9F60FF4C - 50FB276DBD3FE7CCEF9E32FEFFCD2EBAC8C2CFFEA292EBABDEF1F19D1EE226EC - C9E325FABDF4FDD1CD11CDD6FF67D1E6383EC6A8FEDFA6CDDA95FF013FE007FC - 803F5EF875EBE7BAC79749D6BEDEED13CC911C79BDC665AD466CC62B8A6446CB - 17CF05B6BB9C63B0E5B9CEDB13D14CF812D89E1175C5475EC4FC9132D6169561 - E2E7C5DB4BE69532105B61ED8EBBE865DEF08DB6EAEBA6193C0FDCCAF3B60D9E - F8335854872AF52FD3D75CEA5F15DF55AF85FA87FA87FA9F39F56F5BFE588EEF - 69A463C079B44FD26830F820953EABE0C47FEC1BD4611FEA39858A4D55837DA8 - E55C623D7AB70FCD7E54D63E74E9A765EC43573D60C4AEBCBF2A3EB7F1DB8A74 - 5D55FD8632B2E46A228C2F63812FEBED4FA4F9C84A6C98BDE67E8BD3F87572BF - 6051CE5ED38DE65E880B3ECBDA09073D74C2193FDEFB3ECEF5BB2167BCC27EDC - 719E175D5B86FF32DE0DE5F0FF38F254919F3CFFE764DA0490CF3DB6EBF73EF7 - 6202955E8B5B53D657C75C4BF4B5FEE3BA3EE7BAFE93F0693CDBF7FA8F31965E - 227AEB269BBE683BBE1BD847057F88F5CBB536B698CDFA4FCB978631255E30FC - 828EA4E9A032EB3FA62FA9FEFEA278AA15F63A9D755DC00FF8ED8EAFFBAAC6CF - B31FCAE08B9FE72235BFEAA49F64D93FA5F14D3F95063D6BDA4FBEF88F326053 - B22EFD6E5DED5B877D3596F845E37B99F51F4F7B858361FF6BE2EF7FB9D4C5F7 - FA463BEC7F4D86F5075742DB729FF8715DF855E47F4B277D5C6470A840670CA9 - 18F80DFA982D3E8F35972A5FFF886E802F6EAE0EE574C6FE29CA499691858FFE - 09ECD6B3ACFB7D8CE7728FD97A4BFC633AD6BF8A4713D1C12D5DF496D3E2D418 - CF911FEF59E29F5C776AD0CDDADF448F43A9CF5364D5067F34BE476754FBB2A8 - BFD5B9FB93CF7DE1AB75CAD699FE7AF04FAEB7F8C7F7C89F63E65D11F011D672 - 9288A770A0A4FC6C409F71917F757F4544EB0AC7F72EBA00FDB02F9E6BCFB3E9 - BF823D84B9BAC598F10C62414819EB15AFF2F5CF3175C74C277D34850F038EF7 - 9F6D72B57FE48EC6058514C72EC71986079CEC1FE6B143DE4E397BB6D6DAFE71 - C39F27F7DE1CB7B67F1CF145D6ADCA70C68FCFFDA8FBF4702F0EDA036DEE097F - A094FD63899FB1DF302FE007FC801FF0037E4DF8C698E14AEADD7CFC010FFE3F - 03617FCF69CEEB83E7908B87D3EC38279BB084AD5855E68B6C458FF8A9B6A24F - FC345BD11B7E8AADC8F48827FC5C19AC8A9FA7EB027EC03FE3F12B8CE94563BD - C41318AD89768631BCFD086B7A2C7F73E04782B826886951185322A2F38AF67A - D936384BEEE21E4EC8C9AEA2780C581FC7DDC905313D7E27F72B2FC23D84B88F - 57FC6DB6C3CF31CFB7ADC8B6D6778B9BF742B7BEBD9B5E8FB5734EFB7D69FC38 - B611D6F4A6658CC10DA6A74AE347B42C4E3FFDEE78E1EFB2667EFD8AEA1FD243 - 7A489FA0E99CD6DD74ECFF5BBAE95C7DDFBD89AF62AC4534D3C4D2FA0BEF6494 - DFD54CE82F7E7607D321EC3D6A7C8929D50D3D6EDE99813149C68D4519BEDA07 - FB1B74FB297A7919BD5AEEAF3BC263C31F45BF420F8EA4DD4FCF73D9DFEAF103 - 65C3B751F67510B3EEE9647C6F55F6127A0DA7F5CB9C0E63D948569C2B8C7F72 - 77FC70621FE731A6F764B62D97D18C63EA21EFD5366331E7BB52DD551FD1A536 - 71BD7A17337F0BE27805CA2675A75D495B9CDBAAA3BF93E6A6C997317ECF16D9 - AC628F0F43C6218735C4753A57FC0AD1B76EA96D3D2CF62318CE8A59EFE93BD0 - CFAEAC035FC55E8BE774D7D512DB33D657C0BFD4FB9C34D6B33BA0AFB2740A64 - 1871F2D85EEE7090FF48ECDB83D0B369BA50CD1D62FD3C5C52F69FC2F890D5C7 - 645E02D95D98358655994F658D5D9ED60AE6A83677F01576EC73D703DFC5D73F - D9A73037C238965A7FC4868DFBDC25A5F8CB360AEC088CC36965C0A6903BE9B7 - 63AE568A07B13FCB338CB32D2D761DE6AF98638A0C37944CBB8E051D74ABF8A9 - 0CA6CD55F10C7C842C575E9B718C456B130B54DB56AE713E2DE3D476D7812DBA - 6566964DE887684ADED8EEF18CFDA005FE693E5269B1A492CF6C7DC3D37CBC6C - 9E59FBFE4F02FC2A6455FF6E9AADCE8E08593DEBCE3F7B5D177F60A7609DCE37 - 3E3081CD7DBB176BDDFADE721FFC0796C456E8C51C13F78062EF53F94757E4BF - D887B863748B8EBFBA75199D23FBB70F56E50F7C0F8105CCD6DCA546FC34FE54 - A1247FD2DAB7AAFC9BED5BB77C06FD33BEFA6752E2D73BBE0F8E65EC9F960E37 - EC7AFCADFBA607DB0F7B522B80F7E8127AA59C65DA843B0FCC7E5FC9368EF5C9 - 6AE845A1D55A5FF922F892407F835CCED27B8AE994D9DE69F2988C49EAFABF29 - AFA93137127DC5F57FF3D964C0AF9B92BAC547FB1A31A642FB86F69DD8ED5BAF - 7EAB553FBB8C2F62DB3FE41AAB653CC7C7BAC7779FF64938FF15CE7F4D88F35F - 19E72F2B9F5F88E8477A8FBF167C9CDD6CD01FAAF047C59CECA46B386F5FB383 - A6CBBAFB74FC8F782348AF822F77E0618F601DDA57DEC33D7CEBD4F39C7BD62C - F167A8984FB1BFDA6169D343F2FF91BCFBB1B2F0154FB85E7857EF438327CC8F - F33156E1577834A2D25107CE9FE45516BEF0FBA0AA5FBC0E3F47EB6E757E57F6 - AB659F6B44F21DC47B56F8DC76E0AFF26B9436957D527DD7D1017D1E17E9B25F - 87F6E8B3C1976F471B1EC6BB3B56D00B80C9F5FE01D6AB44EEF7ABEF89B10FA3 - ED755D6CDA57F640A0F32FEC89E8ADEA4E5AD135FA1C019E231D7FA7EDCFE6D5 - 5FFC814FA93FEAADB0E33841A5EB9FCAFFD82F73BFBE6B8AFBEEC529FCEFAF22 - 3FD033901FAD6F92F2938C1F345EF29FD37F0F097F0E5BF7DF6C5FF16B60EFA8 - EF10FD039915BD7C6F4BFFE4DC3358609F1CC5D97F7C33F89AA63F5187244FFE - 0F4B27439F4C7A140000002000000020000000BC1000000000000078DAED5D7B - 8C1E55153F45041554A8A08848D0A0A0FF18D00828082A8A316A0C4F79A83C83 - 1205E451628252FF101528A24660C15840FAF8E6DBB622524CC414DC520AF4E1 - BEBBC108B4B448DAD8A415FAB25DCF6FF6CCF6EEECCC7C7766EE9DF976F7FC71 - B2DFCEDC3BBF33F79E7B1EF771667878988695C6515F40C32E69A2E2BB6AC7C9 - 805FA4AD2713BEF6FFE4ED7F2ED3E5426F58EAB12E5B7DE74B8FB76A6F5FF2D7 - 6EF869FD5E11D589ED54CECACAA5E22BFE64C24F19DB5D53057FA2F5FF14B501 - 5D1AEB16A3FE800EEC6DD0AF41F85D353EE35E1DF5237ED7803FD3C09FE96D9C - 36E95BBD013D36D0A0AFDBE2A32CEAA06E51DCA1B974083F63913156FE638B8F - B2D13D968D85830BE95D3965EB30AEDB6F8E55E6E5AFB6F8281B1BE77D78A625 - F6742E3F64D4DDD3DFA45F2D0BE8ADB6F8288B3AA86BB4C39A9E397470363E4D - E3B27F34B077F435E8ACA2F2C79867F3FD9D665F64CA74409799EFDDDBA433CB - CABFF060B6C3C549E55E584CFBF3FDB5C633EF7035FEB80D7F69BCD74BCCC37E - 09E3EC72A3CC86787F97C15FF128BD8DCBBD6AC8F26509F6F88951FC265DEB5A - FF701BFC206D2C89CCEF92FEF95FEF5C7A8F6BFC8105F45E2EBB5BEAEC5CBD88 - 0E32F4D5678CB67FD66A9C36E9965199E2DF563A3BA095861C9E6CB4CD1506FE - 6C4BFCCFA3AD42E2DF9636E361A3CD2E35646F8681FF335B3DD9D349C782AC6D - 49837E61E0DF60F07583217B3FF76833EF4892716EBF2B0DBE7EEFCD9636E8C1 - 517CEE7343FE4F36C6C64A8F3EF7EA08A727A09346F54340EF34C6C62E9BF157 - C05F3B2C1AE3C07AE1617A478CB7BFE5D13FB9F19B74BD21E34F24C8C6A5C6FD - F5DD0FD1012E7D55E874A3EFBF9DA2A3D719FAE1362F721FD0CB69B605FE9A69 - 7FD36C7F4EEC734DFBCBFF5F945A7E26EDC3651E3578D88EFA85B1033A2FF461 - F63EEF11F83899B672642C98FE17C6C52CF48F2D2E64476CFE6EE3398371994F - ADBF808E80CF18F321D7F2FBDC08BF38ADDEAA800E155DBECEACCBB2D4B3661E - 1D9EA7EDE02B72DDC50931EBEE508F34E9011E53B787B2C5BF45B7EC8E9767EC - 3F9BB6B6401F7E73CCD8B1A70DCCDF858EC6EF7E12073D1593A738EDE0B24F82 - E7241FCF0541B660EFA143A0D342BDC6BC31DEE7F2C8A8929252FB93F8259B99 - 56F1183FB28679DACD797C12D838D64DF7C39F63DD748AE379E20E0BDBFDAC69 - 33ABC24FC0AE0C3F057B1BC7B5A7FBC617ECE5B172DB7B9BF4150FEB041D5562 - 67E157819D861F8EB184FEE6717786E7759A0E89136EAE02BB5DF1EB6EFF0CF9 - DB5185FC55C94341FDB3A30AFDD30EFAB71DEC8F67FB5BABFF51B7FFA5A4A4A4 - A4A4D4D6E75546D677FFDE1BD03595EF056AD2ED63FC94F9F4B1DAB02BC44FC4 - F6B87E1AF38B6E4D98FF9EA5D85EF7BCDD366E7D8565A092F1CD325D17763BE0 - D7DDFEC698FF69C298BF5379A88587DAF46F3BD89F76B0BFEDE07F2829292929 - 294DEABD086C5B6163D90FBEAE72FB1EF3FFABF6BB35FE50DF7F22C41F2EF70D - 4F84F8A3DDE6DFAA6A7F9D7FD3F9B73AE7DFAAB63B75FB1F4A4A4A4A4A4A6D9E - 17E348EC55C39E35F38C6F091FF794702F5D40BFC3FEBE9C3ED26607FBFFD69A - 67B35BF1803D8A8EF3B7AD8DF95D993CB8C6679FE70BE1DE624B1E5CE3873C34 - E98BDCAF6FC4F261ACC4B9FD2AF0F3F0E00BDF96079FF8B2CE7546923C44674B - 7DE3A7F2D0A49BA7027E9DED0FF98B6357257F36D83EF58F0DF664D4BF75DB9F - BAED6FDDFE47DDFE97929252DD44D306E6D3F1C82711EE3362C26F5C6B954FA4 - 6CCE1CA6BB908F2623E7C47AE41A719BB387A6491E91FF4AEE962EE468429EAC - 28E7534F40A7221F09DF5B2A7C6C1DC9E954AE3DC2DC7501CD97673ECD6D7CA2 - 857FF0A9D133800D9AF7E26C7A4B89F79E1B9D755BD1416FB6ADBB6409ED8BBD - 7F52B759A41D8C3C5CBF29213377CBFCFCF505F2336D459BE35D32FCDF1F8152 - CF00729B495F6CCD239322E77B5AF537975B016AE1A37F3ADF7A6C98F770BD4D - 3E561B7CF1839EE672AFD8C8416F277D229E13AD34BEC8D2888E6AE9635D2839 - C14E7586DFA0CFCA783CDF624D2FCCFF36D0491F8ACB5A841711977B1D34EE7A - 4C26BB033AC6761C44B9C150C7153E74A4AC075F67D156E787FDDFA4D35CB57F - 982368244E3AAF65AEA7803E2E656F742D7FFD9D745C8EF1B7D4D9FB07B40C79 - B06CF57094A313B6A42C7E94CFAF550ED13163807565A833037A26CBEE58EADF - E798B6742FA477E75C5BBF41C6EC6F4BC48BB3231B98149F5BC8C19CA2F6B7A7 - 41F7C5CFBFC7754A2B82EF001F42EA2F6F250F467F3F97E49FC106E4E501ED20 - 7DB1559EB3341C4FAC5323FF2BD4AF0DBA49E41C65B63075BAE34164926D683C - 9F5C8C706F16644DF2B8AE75C943D41ED023A19E14FF1BBF4774CBD8F10D0C60 - A5F0FA6AEF7CFA88EF784179B0E2616D7EFDE09887265D5545FC98CA4345F811 - 0FB1B1F95215ED1FD393D3D9BE7D175435B6C6FF1AFF6BFC5F3EFE6F45BEE37F - 4B5FDE5BFC9FC30FF612FFE79525D7F17F8E3EF012FFA75155F1BF2DBEAFF83F - C7BA9997F83FAFFCB98EFF73E8132FF1BF25B6B7F8DF52FF6AFCAFF1BFC6FF1A - 7B6BFCAFF1FF848DFFF11D8EBC714C825F3754C296B5CC796AB3176A22E1E33B - 251EBF773968E9837418FBC8068CFFF3D240D486A0BCF1D554EC7FC5577CC557 - 7CC5577CC5577CC59F5AF875FBDF75C71F2A7FF5C6DFB16F6FE6A59DE677754B - B4F9400959C7F7DAAFACBACF8DF1FA6CC84340DFAB03DFF81E4F211ECAE2876B - 20260F4DFA7E19FC56329736D6C003D672C2EFD837E8EAAAF18BF2E0123FCE83 - 4D5F14ED7F7EBF7B5BF1DADBA45DBEF0FB3BE9041BFDE0ABFD5DD982B23667B2 - E197F539B4FDB5FDB5FDB5FDB5FDB5FD155FE5CF63FCD9E1C8FF1CF238FF32E4 - BA5D952617E9FC8FCEFFB4D3FC4F51FDEE6AFEA78C7D7131FF53D6BEE9FC4FB9 - F99FA9EE7FB70B3EEBB2A3F9FA8B59E739704FCA1CED125FB0D721F724CEE0A5 - EEF1E47B929F725D9C87A2F883F3E82879A7376CBE670F1EE4DCE0181E4AC41F - 3B0BFB030DDA5916BF7FEFB9C2A1BE91F305D97E00CA34467C18D42DDFFFE159 - 807BA3B38D41406F4AAD3F93F6E96BD203F28CD9F8DF89FCE3B9D1B98E26CDB0 - 38BF3806DBC9F8E7E7B1FDF821F46C960E469938B6EABF5CF8A5D67C7DEDC556 - 9AB2F1E06095F15F8BFD30DEE3BFB2E3BB6CFC5716BF6CFCE742BF9589FF4C42 - 4E677EC6CB6CD7EEAB2AFE33B1A3B37D5C7FB8D5776D5DC57F31EC3D2253FF0E - 9F91C183ABF82F1C73013D15E1C9F7BC6647FCF07B5CE433FE93673DCCF41DD3 - 1E8B2C04FC0EE7F88CFF7CF90345F78229BEE22BBEE22B7E75F845EC8F53FC02 - F6D7257E11FFC375FFE7F5BF7CC81F78606CF89FF7D725FF55CF3F287EE1F8B3 - C393FF3958E5FABFAEFFEAFAAFAEFFEAFAAFAEFFEAFAABE3F5877390DBB32E7C - 57E31FFE37745BFC3B8436843A188BC8F758043FEA43E432428C92D7464A9DF5 - E253DF9B075FDE1BF91CFFF0C262DABFF09C2ED71DCD3197909B320D5FDAFC95 - 32D86372CC05B401F1458EFD076FA0FD12F2C4DDCAE59FC8C82397785FDAE0F5 - 1CEF3FEE3AF21B669D43CABA9FA60FF2E087DF4208E8D534FCACFB2EF06DF45A - 068E177CF946C9F375E1031B3E685DF875B7FF64EDFF64FD13EEF9B8DCD42FE3 - FA3F76BFA8FE111F727DF1DCDE63738C8B5E78DAFAFD254732DAA00C0F217694 - 63BC49DFB0893F19F35CE1E11EB9BF41DA2F6F8C3A47EAC286DF9D23FE9E63C8 - C105B05B45FC0FF976D2D2A4F736F0BB4AC4FFBBA379D392FE5719DA5326AF63 - D1EFA68EC12FB1EE5D1ABF415794E1A12CBED8FDC23CB8C02FC3832BFCA23CB8 - C417FD7F55C403F27E5620FF99FAC1237E579EF370AEF15D3D57F1155FF1155F - F1155FF1155FF1EBC1F745AEFCD882D4E5BA5D9526FCF90E9FF2D6723EC8F778 - 6B351FE45BDFB48AFFBDE3B79883A842DF66F15095BE4FE3A14A7B93C443D5F6 - 2E3E1F5481FC67EA078FF85D2EEDB2EFF6517CC5577CC557FCCAF1F754E083A6 - FBA67EFD6F8D0795943C52B89F917D6AD91FB31984DFF0AD8BEC55947DF3CBAD - F6D4067424E3AC4CDD6FCDF750C6C73C99ECE1592D7B59D6F436E9CCD58BE820 - 107EE39A3C6B15CABAC6C77E7A29DB8F735A49FBDEA33DDF3ED6FFFB1BE13E2F - C4D75FCDE89FAFC9F39EF7304F19C64E49EF1ECB9F60B5EEEE6B9EB6409E7CC5 - 577CC5577CC557FCDCE5BA1FA2034069E5E2F75DE3F3B57F22F762EF3C7A7FBC - 1CAEE11ECAB47A6E569E41DCCBC07F5CEE75AF7984DE1E9593DFDDF2FFE3A9F8 - 0DDA8432F85E795A99C1F9F461F17D36269E990FA85770FE62F8A37F8ABE01D7 - 33870ECEF0991E9272B332F21CDE29F80F26DDEF59401FE4FBAF25F8C4AFE15E - 56BF0ECCA7E3B9DCAEB4B52B993387EFB5ABBF938E4B7B4E4F402771996D06F6 - 365CB31A034DBAD6A8D7CD6D7297508FE1DB5F63E1239F3B5A5EF6B0E73AAF27 - 67C562B49EF938DBFA390DBA155424B65AB284F665AC2FE15DC35C180D3A03D7 - 34EE5452F23227BADCF91C23DB13E8F42C5DE9157F2FED825EADB23D61A76147 - 61CBA278BD68FEA0B2045B16E9EFBA7468E47F40A7D7810F1B6A6B3B2723FEA8 - FFC776742AC81FC65FE8AB8EF88BBB45F6CE6E35AF89B9C5707EAFB1777F820B - FDD3AADF31571BCDA93AD4BF1B6DF42FE6AA8DB9E401CC6B66CD2D3A97CD917D - 29E15C7295B8B1F3ADC85172664D63136B07C3983F9FE8F888AFB91FFF853833 - 2BD68BC9FE3257ED0F7C89B343596E15F319715D287F583B28CBC39A7974B831 - 9E36B1DD3F25CFF8C3DA41D971C0CF38909FF5A83C737B56DE1143FFACF2B9E6 - DC2A1684FEC57A4D788EDDADFEB5C2776CEFC7B67F40175485FD8F80DE67F465 - 4BF9734945C69F6BFCBCFA47C9691EC0D2DF1DCCC80308FF7930C775A779BF25 - 6FC47D39AE7728FE84C5AFECDC4F127E28CFFC4E6368E43DADAFCB98D0FE4FB3 - 150BE888A47D3ABEF181096CBE87F86C59DCD7F3896FE456DE28FB68F6C479F0 - 25FF666EE9282726F2B50A0F2B227BED43FE656DEA99A45CD6711E5CB77F16B6 - 11835C233C3CE91ADFCC299E1103D5862F6B5EA372E81A1F3EA1F08039919BB2 - B07DC97F120F59E3CF87FE8F8FBFBAF54FDDFA57FD1FF57FB4FF15BF0DE3CF5A - E3EFA4F9CCD05664ECA59679BB8D28EB7A3E02391F47ED56820F61F82ECB5CE4 - A84C9B574AF22192FC079F735B260F556227F9105563C77878125406DB38A750 - 3919D80319DFB3F07D3D575E5DD7D715BF2DF0EB26957FC557F957F957FC7AF0 - 6B93BFBAFDAF32FE27FC70504DBE6F2DFE777C1E3B69EEBE2AECB4B97B1FD875 - C79F55C5DF9AFF5FF3FF6BFE7FCDFFEF2BDF9B477CCDFFDFBA7DBA7CE087393F - 46EC5F5F77401F88ED271D629B3073554087FA907FEC1736CF5932E642037FA1 - D1F7DB793C9EE51A7F603E9D286B0F7746DF07E2BFD783A2EFFC44E75551D635 - 3ECE5270F92DDCFE8B186B3AF67A1AEF8CB5DDE9B8873236E72E6CF0D1E67817 - 3C6F682E1D82EFF2018B6F4DE3DF1F1D68D0E920FCC635E1E31594451DD44DDB - E7DD0A1FCF30FA7B8B60EFE6BF1767CCF15E2C6550764B741E17CFCA8BCF7D39 - 23EA6F6957F8649798E77E21EF20B3BF85878D611D9107FE7D636EFC80FA23B9 - 42DFC6EEFD2496CF0C76E796585B4C37BE63D597177F701E1D658CAB8D3CDE8F - 31CE3BC3C63C867575D9DBB438E4A1934E08CB74D2B1917CE2197856613D29FD - C072749AECA39819EEF330D6F4E5BCFD70D406282B7D37A3B49E4EC18FCEFD1B - FACF297EACFD37A14D0D3D84BE5F0C1EE4DD1F17B9FF64B876C47D853E2BD3FE - 901979A77BE2F287F71C277F01FD789CFC41274AEEA6BCF81833E3C69F31F621 - 6BE02324913BE1ED92F8F84BEA8776D73F75EB5F0BFBB3D1E8FF4D3EEC4FAAFD - 15B91A637FA1EB0AD85F0BDAC16DFC65F814A16FD1DAFFD86673B62947FC1DE2 - 8FCAE4883EEA37C7347E63BC62CC24C91AE8FF33533C0A + 4C69020000004C7A150000001800000018000000700E00000000000078DAED5D + 6B901547156E7CC4175A9AF8282D254663197E68458D5A3E4A0BCA8A518C29CB + 125F41FD63241A8DD1248A8F888A294C41AC8AFA23958AD124C0DEB9BB988862 + 69884802092021ECDE7D106043C00A6CAA209100054BD85DCFD773FAD20C3D33 + DD333D77F7EEF68F537777BAE7EB9ED3A74F9FEE3E7D7A6C6C4C8CB592168AE7 + F54662B408D1EBD3F2F0A3483C9FF28E11FDBD51133FB221E4C53BA89B2D7E23 + 12D7D97E736F5D5C5F14BF2F12676551597CE6552A95C527FEDE984553853F94 + 3EA8BF57843F1A0D1AF0F17C3DE5FD7551F9ECADC977D7ABEF4AE2537D169695 + 7F60E8F8D4468FE7F1B82869D8ABE9DB7EE09580A9CAA2EFF3AD274F6BF3298C + 4F72368FF5BF6AD79D3EF107568837939C2C228CC520FAFB6B2DE74F85F25975 + FF1A6BB5FD305E44BA8BBEF74E90CD38E24A843B43E3EB8C7278621AC9C05761 + DBA8BA42CE153EFE56DF24ED1FCA6B635B817A968957297B09D4DF21DE9D868F + 345DC61FFDB378650E0FCEA6FEFE48930F75713BC69B347CA4218FC6B72DA85F + 2A4F22B18AF39EA06FFE62520F9CC11F55AFBAF8B27C274EBFD7C42BE80DAD1E + 5F32E999347CB6032ED7F4CD57F4B42DB78A17AA7E4C75B92B4D8F65E1B3CE59 + AEEC87B56BC50B9A65D7C5C55CEF933D5DE22D45F11B1DE2AD943E22E5A2263E + A6D90EBF659B615D961ECEC367AC07D956F98DF66C2DD77F512AFE4A710EE579 + 0E84BF33F4F262AEEB7D1AFE00F3FE1B59F24BDFFC1150CE7876257F679F86DF + C7655E597A5CA9896F317EAF86BF86F97353597C92D3258CF5CFE433AAFFC3A5 + F109836DCD254D9D13898FF2378DF6748A0B0A63778899CA9638AD9DE239E90E + 2EE39EC2BC8FC45F18E3B1A48EA076F96CB37F531B15E0FB77B4B9C36772FAF7 + 08F23BF0FC6AD56FE9BDBBD3F26D59255E4A791ED0EAF13792830B53F579A778 + 973E5650DE7F3F14899764D505E9DA7728DA4AF5BA85FADFF741F81BCF127996 + EDBE43BCD87ABCAD8BCBE89D6E0B3B671BB5D7A525C6F50F13C6CFC12BFADD4C + B4899EFD15CF08F74353C67E0AE4D6DF3BC53BA91F7C17365115F8247FFB5917 + DD965A8715E24D946729E59955005FF59F55A6F4EE489C47694F709E833EF113 + D8D2F6F4850FDB3C31A75ABFFD5EF1721FF8BEB04DF83EB14DF8BADD8E3182CA + 9A5E523E5B8A5F357FAA6EDF56C8672BFA9747FD50A97EAB5A3F070A14687C48 + AE45D4C5CD7973F982F381F349E7FC97F5DAFE0AB14BCD6553D66776FB1C83DB + 1D9BED9286867D3FE6C85EE70115E357CD9FC9544695FDAB15FAA115FA2D50A0 + 40ED43D001D005597B2E5ED69948A741B755807F8FA68FBD97C16BDE6B4219D6 + 65DCAF95D1DD2EF855F2A75DB15BD1BFAAD60F55EBB74081028D0F61ED156BB0 + 588B2DE027310B6BBF5803CEC8735BD17918D6ACF9DD27B0969D926795EE47EC + 88BF5AD3CBC632CAE0F3B8F22FAD8CBDF0EFF1856F534659FCBC327CE0B31C4E + D7FD2288FED32EF806FEEC513E6015B4EF1EDDBFCCB37CEE49FAAE4DE4FE55B9 + 7EA858BF55AD9F034DEA717B7A5F5D7C9BE72DFBD8B716BF6BF0BCCCBA2DC9DB + 1708E729E9CF5717BF68D4C5A77A22F101FC92BCFF12E70788861A3531B7800F + 1ECE8A1D87FF9EEE3FAB139EF3B71DA7DF050EEBFC9F67EC59269FB894FE8D32 + 3E67397E3C65F23B947D3412C74CFBD8EC73B8BFFB4EF1B21C5F3A7CEF0E134F + B6AF106F808EC1AF895794B62BCF1F52CA09B5A5292D0B9FBF6F91EEAB9A3607 + 857CA8FFB746E235184B2491EC001FBFEA19D235FC4F53FA9339F8C384FFC1A6 + 7F23F13BC7E7F0986A73BC87F773F0F755597FF842A3EF14E27F5DFC8AD2FF91 + 239F57A15FBACA0FFCE2E5B9BABAF8A685FC0F414E9DE43FF68BDD9727FFDC57 + E63AF6DFAF4B3FDD480C50DBBCC7D2677501CA40BF4CD33FE089EECFCBF44C6F + 8778AFA58E9BCB6B32BB64DBD5C4A55206E997DB72979437F6892F5206F8893E + 8F7E09D9837CE357FE4F6D8974F04462162CC36A6D283E9F723071A6E97F7D9D + E2FDED54067862E0D5C1B43EE9AB8C2263A845198A57077CD6BFD91E5DE2F5A8 + 377E83FDD31EF64FC6FCA6B4FD6371E6A294FD93453EEC1F8B6F2F67FF18A8AD + EC1F0FF5CFB27F2CC6EC52F64FE61A8807FBC7E25C5069FB27A5FF06FB27D83F + C1FE99A0F68F69BD3FE3CCEFDE22FEFF8D4E7191859FFD4505D757BDE3E33B3D + C44DD89BC54BF47BEEFB63DB22314FFD9F46DBE2F81863EA7F9B366B57FE07FC + 801FF003FE78E157AD9FAB1E5F2659FB7AB74F304772E4F57A97B51AB6192FCF + 9319255F3417D8E1728EC196E72A6F772466C397C0F68CA82B3EF222E60F97B1 + 21AF0C1D3F2BDE5E322F9781D80A1B76DE2D5EE10D5F6BABDE2E318BE6810334 + 6FDBEC893F4379752853FF227DCDA5FE65F15DF55AA87FA87FA8FFD4A97FDBF2 + C7727C37918A01E7D13E31D150F0412A7C56C189FFD837A8C23E54730A199BAA + 02FB50C939C77AF46E1FEAFDA8A87DE8D24F8BD887AE7A408B5DF940597C6AE3 + 77E4E9BAB2FA0D65A4C9D544185F5A81CFEBED4F9A7C643936CC3E7DBFC569FC + 3AB55FB03463AFE9467D2FC4059F64EDA4831E3AE98C1FEF7D9FA0FADD90315E + 613FEE04CD8BAE2DC27F1EEF8633F87F0279CAC84F96FF73326D02C8E75EDBF5 + 7B9F7B31810AAFC5AD2FEAABA3AF25FA5AFF715D9F735DFF49F8349EED7BFD47 + 1B4B2F61BD75934D5FB41DDF35EC638C3F4CFAE55A1B5BCC66FDA7E94B43981C + 2F187E41474D3AA8C8FA8FEE4BAABE3F2F9E6A89BD4E675D17F0037EBBE3ABBE + AAF0B3EC8722F8ECE7B954CEAF6AE2A769F64F617CDD4FA52E9ED3ED275FFC47 + 19B02949977EAFAAF6ADC2BE6A257EDEF85E64FDC7D35EE150D8FF9AF8FB5F2E + 75F1BDBED10EFB5F9361FDC195D0B6D4277E52157E19F9EFAF894FB20C0EE7E8 + 8C611903BF2E3E618B4F63CD1CE9EB1F891BE08B9BA943299DB07F86729265A4 + E1A37F02BBF92CED7E1FED39DF63B6C912FFB88AF52FE3D144E2507FA778DB19 + 716AB4E7C88FF72CF14FAD3BD5C5CDCADF448D43C6E70659B5C11F8BEFD11953 + BE2CF26F79EEFED4735FF8729DB279A6BF1AFC53EB2DFEF13DF2E7B87E57047C + 84959C24E2291C2C283F9BD1675CE45FDE5F11898DB9E37BA7B800FDB0379E6B + 2FB4E9BF8C3D8CB9BAC598F12C624170199B24AFB2F5CF7179C74C4D7CDCC087 + 41C7FBCFB6BADA3F7C47E3E25C8A6397E30CC3834EF60FF1D8216F8DCF9E6DB0 + B67FDCF017F2BD3727ACED1F477C9675AB329CF1E3733FF23E3DDC8B83F6409B + 7BC21F2C64FF58E2A7EC372C0CF8013FE007FC805F11BE3666B8927C371B7FD0 + 83FFCF60D8DF739AF3FAE039E4E211931DE7641316B015CBCA7C9EADE811DF68 + 2BFAC437D98ADEF00DB622D1A39EF03365B02C7E96AE0BF8017FCAE39718D3F3 + C67A8E27305611ED0A6378FB11D6F448FEE6C38F04714D10D32237A64424CECB + DBEB25DBE02CBE8B7B242127BBF3E231607D1C7727E7C4F4F83DDFAFBC14F710 + E23E5EF6B7D9013FC72CDFB63CDB5ADD2DAEDF0BDDFCF62EF146AC9D53DA1F0A + E3C7B18DB0A63723650CAE133D5D183F122BE3F433EF8E67FEAE6C64D72FAFFE + 213DA487F4099A4E695D0DC7FEDFDF25CE55F7DDEBF832C65A2466EB584A7FE1 + 9D94F23B1B09FD45CFEE203A8CBD4785CF31A5BAA0C7F53B333026F1B8B134C5 + 57FB505F5DDC7E9A5E5E295ECBF7D71DA5B1E14FAC5FA107474DF7D3D35CF677 + 6AFC40D9F06DE47D1DC4AC7B2619DF5B96BD5CBC8ED2FA784E87B16C342DCE15 + C63FBE3B7E24B18FF338D1FB52DB96CA68C431F590F72A9BB198F25D21EFAA8F + C41C9BB85E3DCB88BF3971BC02A593BCD3AEA02D4E6DD5D157130B4CF2A58DDF + F35836CBD8E3239071C86105719DCE65BF42F4AD5B2A5B0F8BFD0846D262D67B + FA0EF4B32BAAC097B1D7E239DD7595C4F68CF515F0E7789F93C67A7627F4559A + 4E810C234E1ED9CB1D0EF21FB17D7B087AD6A40BE5DC21D6CF230565FF698C0F + 697D8CE72590DD2569635899F954DAD8E569AD60BE6C73075F61C73E773DF05D + 7CFD937D0A73238C63C6FA23366CDCE72E29C45FB2516047601C3695019B82EF + A4DF81B95A211EC4FE2CCF12CE7653EC3ACC5F31C76419AE4B99761D0B3AC4AD + ECA732649AABE219F808592EBD36E3188BD62616A8B2AD5CE37C5AC6A9EDAA02 + 9B75CBEC349BD00F89695963BBC733F64316F867F848996249259FD9FA869B7C + BC6C9E59FBFE4F02FC326455FF2E314F9E1D61B27AD6957DF6BA2AFEC04EC13A + 9D6F7C60029BFA760FD6BAD5BDE53EF80F2C8EADD0833926EE01C5DEA7F48F2E + C97FB60F71C768BF8ABF3AB0529CC3FBB70F95E50F7C0F8105CCE6DCA5427C13 + 7FCA50923FA6F62D2BFF7AFB562D9F41FF8CAFFE9994F8D58EEF43AD8CFDD3D4 + E19A5D8FBF55DFF460FB614F6A35F01E5B2E5ECD6799B6E2CE03BDDF97B28D63 + 7DB20E7A91699DD257BE08BE24D0DF2097B3F49E623AA5B6B7491E9331495DFF + D7E5D5187323D1575CFFD79F4D06FCAA29A95B7CB4AF16632AB46F68DF89DDBE + D5EAB74AF5B3CBF8C2B6FDC3AEB15AC6737CAC7A7CF7699F84F35FE1FCD78438 + FF9572FEB2F4F98548FC58EDF157828FB39B75F1C732FC9131276BE21ACADBDB + E8103379DD7D26FE47BC11A497C1E73BF0B047B011EDCBEFE11EBE8DF279C63D + 6B96F8B364CCA7D85FED08B7E961FEFF68D6FD5869F89227542FBCABF6A1C113 + E2C7F918ABF0CB3C1A95E9A803E54FF22A0D9FF97D48D62F5E879FAF74B73CBF + CBFBD5BCCF35CAF90EE13D2B7C6A3BF057FA35729BF23EA9BAEBE8A03A8F8B74 + DEAF437BF4DAE0F3B7A30D8FE0DD9DABC58B8049F5FE21D6AB58EE0FC8EF89B1 + 8FA0ED555D6CDA97F740A0F32FEC8EC4DBE59DB4AC6BD439023C473AFE36EDCF + 66D59FFD814FAB3FEA2DB1E3384185EB6FE47FEC977940DD35457DF76203FFFB + CAC80FF40CE447E99BA4FC24E3078D97FC67F4DFC3CC9F23D6FD37DD57FC1AD8 + 3BF23B58FF4066592FDFD7D43F19F70CE6D827C770F61FDF0CBE9AF427EA90A3 + 3F83FD636B7318E605A4D346FBBBC43C1FF68F695E43F80706F89ECBB2F64FCA + 9AE790B299CBDA3F16F8A5CEBFE7E1973D1F6A8BAFC7E4A9025F9FFB4E357CE7 + F8FF8EF8C97595463CE65E9D16133BB46FC0CFD2CF26F9D1F7751CF1875CD791 + C2F977F7F3EFFF0757DF14454C7A150000002000000020000000231100000000 + 000078DAED5D7B8C1E55153F45041554A8A08848D0A0A0FF18D00828082A5A63 + D4189EF2507906250AC8A3C404A5FE212A504489C082B180B4DD6FBE6D2B20C5 + 444CC12DA5401FEEBB1B8C404B8B641B9BB4425F6ED7FB9B3DB3BD3B3B8F3B73 + EF9DF976F7FC71B2DFCEDC99DF997BCF3D8FFB3877646484468426506F40232E + 69B2E2BBAAC7A9805FA6AEA712BEB4FFD46D7F55A6D385DE30D4639DA6FACE97 + 1ECFAB6F5FF2D76AF869ED5E11D589ED54CE6CE552F0057F2AE1A7F4EDCEE982 + 3FD9DA7F9ADA804E8975CB515F4007F634E8B720FCAE1A5FE15E15B5237ED780 + 3F47C39FE3AD9F36E93B3D013DDEDFA06F9AE2A32C9EC1B365710717D021EA1D + 4BB4BEF21F537C948DEE29D9583CB098DE5350B60E53CFF6E97D55F1F257537C + 948DF5F35EBCD3107BA62A3FA83DBBA7AF49BF5911D0DB4DF15116CFE059AD1E + D675CFA783B3F169862AFB270D7B676F83CE2C2B7F0AF32C757F97DE1699321D + D0A5FA77F734E90C5BF9671EF47AB828A9DC8B4B697F757FBDF6CEDB5DF53F55 + 87BFD6BEEB65C5C37E09FDEC32ADCCA6787BDBE0AF7A8CDEA1CABDA6C9F2A509 + F6F8C931FC265DE35AFFA83AF8515A5F6299DFCDEDF3BF9E05F43ED7F8FD8BE8 + FDAAEC303FB36BED123A48D3579FD3EAFE39A37EDAA49BC7644AFD36D2D901AD + D6E4F064AD6E2ED7F0E719E27F11751592FA6D68331ED6EAEC124DF6666BF8BF + 30D593DD1D742CC8D89634E8571AFEF51A5FD76BB2F74B8F36F3F6241957F577 + 85C6D71FBCD9D2063D3886AFDA5C93FF93B5BEB1DAA3CFBD36C2E90EE8A431FD + 10D0BBB5BEB1DBA4FF95F0D70E8BFA38B05E7C98DE15E3ED6F45F44F61FC265D + A7C9F89309B27189767F63D74374804B5F153A5D6BFBEFA6E8E80D9A7EB8D58B + DC07F44A9A6D81BFA6DBDF34DB5F10FB1CDDFEAAFF2F4C2D3F87F651651ED378 + D881E74B6307746EE8C3EC7DDF23F071326DE5685FD0FD2FF48BB9681F535CC8 + 0EDBFC61ED3D0371994F7D7E111D019F31E643AE57DF7303FCE2B4E7D6047428 + EBF20DFAB34A96BAD72DA4C38BD41D7C45F5ECD284987538D4234D7A40F5A9DB + 42D952BF59B70CC7CB2BEC3FEBB6B6441B7E7B5CDF31A74D8ABF0B1CF5DFFD38 + 0E7A3A264F71DAA9CA3E059E937C3C1704D982BD870E814E0BF59AE24DE17DA1 + 888C0A0909B53EB15FB245D11AD5C78FAC619C764B119F04364EE9A6FBE1CF29 + DD748AE371E23603DBFD9C6E33ABC24FC0AE0C3F057BBB8A6B4FF78DCFD82B63 + E576F434E96B1EE609DAAAC4CEC2AF023B0D3FEC6309EDADFADD2CCFF3346D1C + 27DC540576ABE2D75DFF19F2B7B30AF9AB928792FA676715FAA715F46F2BD81F + CFF6B756FFA36EFF4B4848484848A8A5F7AB8CCEEFFEBD27A0AB2B5F0BD4A4DB + C6F929EDF489DAB02BC44FC4F6387F1AF38B6E4918FF9E2BD85ED7BCDD3A617E + 45C94025FD5BC9745DD8AD805F77FD6B7DFEE7097DFE0EE1A1161E6AD3BFAD60 + 7F5AC1FEB682FF21242424242434A5D72228DB0A1BABFCE06B2BB7EF31FFBF6A + BF5BE20FF1FD2743FCE172DDF064883F5A6DFCADAAFA97F137197FAB73FCAD6A + BB53B7FF212424242424D4E279318EC45A35AC59D3F7F85AF8B8A7846BE902FA + 3DD6F715F491B63858FFB75EDF9B9DC703D6283ACEDFB63EE67765F2E01A5FF9 + 3C5F0AD7161BF2E01A3FE4A1495F56EDFA662C1FC66AECDBAF02BF080FBEF04D + 79F089CFF35CB392E421DA5BEA1B3F958726DD341DF0EBAC7FC85F1CBB2AF933 + C1F6A97F4CB0A7A2FEADDBFED46D7FEBF63FEAF6BF848484EA269AD1DF4EC723 + 9F44B8CE48117EE35A5E3E11DB9C398AEE443E9A8C9C131B916BC46DCE1E9AC1 + 7944FECBB95B3A91A30979B2A29C4FDD019D8A7C24EADE72E663DB684E27BBFA + 0873D705D4CEEF7C46D5F18906FEC167C6F6003668E14BF3E86D16DFBD20DAEB + B6AA8DDE6AFAECB265B42FD6FEF1B3CD32F5A0E5E1BACB4266EEE6F1F9EB4AE4 + 67DA863AC7B764F8BF3F01A5EE015475C66DB1AD884CB29CEFC96B6F556E1528 + C747FF6CB1F9D830EFE146937CAC26F8EC073DA3CABD6A22073D1DF4A9784E34 + 6B7C96A5511D95EB635DC039C14E7586DFA0CF737F3CCF604E2FCCFFD6DF411F + 89CB5A8417912AF70668C2F5984C7605748C693F887283E11957F8D0913C1F7C + AD415D9D17B67F934E7355FF618EA0D138E9DCDC5C4F017D92CBDEE05AFEFA3A + E8B802FD6FB9B3EF0F6805F26099EAE12847276C892D7E94CF2F2F87E8B83EA0 + 7465A833037A36CBEE18EADFE7156DED5A4CEF2D38B77E3DF7D9DF59C48BF322 + 1B98149F1BC8C1FCB2F6B7BB41F7C5F7BFC7754A1EC177800FC1CFAFCC9307AD + BD9F4FF2CF60038AF2807AE0B6D8C6EF591EF627A55323FF2BD4AF0DBA91E51C + 65B62AEA70C703CBA4B2A1F17C7231C2BDB99035CEE3BADE250F517D408F847A + 92FD6FFC1ED52DE3FB37308095C2EB6B3DEDF431DFF182F060C4C3FAE2FAC131 + 0F4DBAB28AF83195878AF0231E627DF3E52AEA3FA627672AFBF67D50D5D812FF + 4BFC2FF1BF7DFC9F47BEE37F435FDE5BFC5FC00FF612FF179525D7F17F8136F0 + 12FFA75155F1BF29BEAFF8BFC0BC9997F8BFA8FCB98EFF0BE8132FF1BF21B6B7 + F8DF50FF4AFC2FF1BFC4FF127B4BFC2FF1FFA48DFF710E47D13826C1AF1BB4B0 + 65B9394F4DD6424D267C9C53E2F1BCCB01431FA44D5B47D6AFFD5F94FAA33A04 + 158DAFA663FB0BBEE00BBEE00BBEE00BBEE00BFEF4C2AFDBFFAE3BFE10F9AB37 + FE8E9DBD599476E9E7EA5AD479BF85ACE3BCF62BAA6E73ADBF3E17F210D00FEA + C0D7CEE329C5832D7E3807A2F3D0A41FDAE0E7C95C5A5F030F98CB09CFB16FD0 + 5555E397E5C1257E9C0793B628DBFEEAFBEECDE3B5A749BB7DE1F775D00926FA + C157FDBBB205B63667AAE1DBFA1C52FF52FF52FF52FF52FF52FF822FF2E731FE + 6C73E47F0E7A1C7F19745DAF42538B64FC47C67F5A69FCA7AC7E7735FE63635F + 5C8CFFD8DA3719FFB11BFF99EEFE77ABE02B5D76B4BAFE52D67E0EDCE33247BB + C467EC0DC83D893D78A96B3CD53DCE4FB921CE4359FC818574147FD39B26E7D9 + 8307DE37388E078BF86357697FA041BB6CF1FBF6EE2B1CEC1DDD5F90ED07A04C + 63D487C1B3F6ED1FEE05B837DADB1804F496D4E7E7D03EBD4D7A80DF310FFF3B + 917FBC37DAD7D1A4D906FB17C7613BE9FFEA7DCA7EFC187A364B07A34C1C5BF4 + 5F217CAB395F5F6BB185A66D3C385065FC97B31EC67BFC67DBBF6DE33F5B7CDB + F8CF857EB389FF74424E67F58E57945DBBAFAAF84FC78EF6F6A9E747F2CEB575 + 15FFC5B0F7B04CFD3B7C47060FAEE2BFB0CF05F47484C7E779CD8BF851DF71A1 + CFF88FDFF5B0A2EFE9F698652150DF70B6CFF8CF973F50762D98E00BBEE00BBE + E057875FC6FE38C52F617F5DE297F13F5CB77F51FFCB87FC8107850DFFF3FEBA + E4BFEAF107C12F1D7FB679F23F07AA9CFF97F95F99FF95F95F99FF95F95F997F + 753CFF7036727BD685EFAAFFC3FF866E8B9F43684278067D11F91ECBE0476D88 + 5C4688518ADA487E6623FBD4F716C1E7EF463EC73FBEB894F62F3DA6AB9E1DCB + 3197909B320D9FEBFC551BEC7139E602DA84F8A2C0FA8337517F0979E26E51E5 + 9FCCC82397789FEBE08D02DF3FE13AF21B66ED43CABA9FA60F8AE087672104F4 + 5A1A7ED67D17F8267A2D03C70B3E9F51F2425DF8C0860F5A177EDDF53F55DB3F + 59FF846B3E2ED3F5CB84F68FDD2FAB7FD887DC583EB7F7F81CE3AC179E31FE7E + CE918C3AB0E121C48E728C37E95B26F1A7C23C8779B887EF6FE2FA2B1AA3CEE7 + 6761C3EF2E107FCFD7E4E07CD8AD32FE079F9DB43CE9BB35FC4E8BF87F381A37 + B5F4BF6C688F4D5EC7B2E7A68EC3B798F7B6C66FD0E5363CD8E2B3DD2FCD830B + 7C1B1E5CE197E5C1253EEBFF2B231E90F7B302F9CFD40F1EF13B8BEC87738DEF + EABD822FF8822FF8822FF8822FF8825F0FBE2F72E5C796A44ED7F52A34E9F777 + F894B7DCF120DFFD2D6F3CC8B7BEC98BFFBDE3E78C4154A16FB378A84ADFA7F1 + 50A5BD49E2A16A7B171F0FAA40FE33F58347FC4E9776D977FD08BEE00BBEE00B + 7EE5F87B2AF041D37D53BFFEB7C48342421E295CCFA87C6A5E1FB30584DFF0AD + CBAC55E475F32B8DD6D40674A4C2599DBADE5ADD43191FE364BC86672DAF6559 + D7D3A433D62EA18340F88D6BFCAE3528EB1A1FEBE9B96C1FF66925AD7B8FD67C + FB98FFEF6B84EBBC105F7F3DA37DBEC1EF7BC1C33865183B257D7B2C7F82D1BC + BBAF71DA1279F2055FF0055FF0055FF00B97EB7A880E00A5958BDF778DAFAEFD + 13B9177B16D207E3E5700DF75026EFBD597906712F03FF09BED7B5EE117A6754 + 8E7F77F1FF4FA4E2376833CAE0BCF2B43203EDF451F67D8612F7CC07D4C3387F + D1FCD147A333E0BAE7D3C1193ED3435C6E6E469EC33B18FFC1A4FBDD8BE8C3EA + FEEB093EF1EBB897D5AEFDED74BC2AB73B6DEE8AC7CCE17BEDEEEBA0E3D2DED3 + 1DD049AACC760D7B3BAE19F581265DA33DD7A5EAE44EA66ECDB7BFDAC0473E67 + AC3CAF612FB45F8FF78AC568A3E2E32CE3F734E8165099D86AD932DA57617D05 + DF1AE6C268D02C5C93B85348C8CB98E84AE7638CCA9E40A767E94AAFF87B6937 + F46A95F5093B0D3B0A5B16C5EB65F307D9126C59A4BFEBD2A191FF019D5E073E + 6CA8A9ED9C8AF863FE9FB2A3D341FED0FF425F75D45F1C66D93B2B6F5C13638B + E1F85E63EFFA0417FA27AFDD31561B8DA93AD4BF4326FA1763D5DA58723FC635 + B3C6169DCBE6E8BA94702CB94ADCD8FE56E42839A3A6BE89B983118C9F4F767C + C4D7AA1DFF8538332BD68BC9FE0A57F50F7C8EB34359CE8BF9B4B82E943FCC1D + D8F2B06E211DAEF5A7CDCAEE9F52A4FF61EEC0B61FA8771CA8DEF518BF734756 + DE114DFFACF139E79C170B42FF62BE26DCC7EE56FF1AE13BB6F7E3EB3FA0F3AB + C2FE47401FD0DA3257FE5C5299FEE71ABFA8FE11729A07D0FADCC18C3C80F09F + 070A5C779AF79BF346DC57E07A9BE04F5AFCCAF6FD24E187F2ACBE691C8D7EA7 + F175EE13D2FE69B662111D91B44EC7373E3081ADEE213E5B11F7F57CE26BB995 + 87781DCD9E380FBEE45FCF2D1DE5C444BE56E6615564AF7DC83FCF4D3D9B94CB + 3ACE83EBFACFC2D66290AB9987A75CE3EB39C53362A0DAF079CE6B4C0E5DE3C3 + 27641E3026726316B62FF94FE221ABFFF9D0FFF1FE57B7FEA95BFF8AFF23FE8F + B4BFE0B760FC596BFC9D349E19DA8A8CB5D43C6E3784B2AEC72390F371CC6E25 + F8109AEFB2C2458ECAB471A5241F22C97FF039B6A5F3502576920F5135768C87 + A74036D8DA3E85CA49C3EECF38CFC2F7F54279755D5F17FC96C0AF9B44FE055F + E45FE45FF0EBC1AF4DFEEAF6BF6CFC4FF8E1A09A7CDF5AFCEFF83876D2D87D55 + D86963F73EB0EB8E3FAB8ABF25FFBFE4FF97FCFF92FFDF57BE378FF892FF3FBF + 7E3A7DE087393F46ED5F6F57401F8AAD271D543661CE9A800EF521FF582FACEF + B354988B35FCC55ADBEF50FDF14CD7F8FDED7422CF3DDC119D0FA4FE5E078ACE + F989F6ABA2AC6B7CECA550E5B7AAFA5FA2B06662ADA7F6CD98DB9D897B2863B2 + EFC2041F758E6FC1FB0617D02138970F58EAD60CF5FBE3FD0D3A1D84DFB8C67C + BC8AB27806CFA6ADF3CEC3C73BB4F6DECAD8C3EAEF451963BC17711994DD1AED + C7C5BB8AE2ABB69C1DB537D72B7CB28BF57DBF907790DEDECCC350F80CCB83FA + 7D4361FC80FA22B942DBC6EEFD2C96CF0C76E7E6585DCCD4CEB1EA2D8A3FB090 + 8ED2FAD590EAEFC768FB9D61631EC7BC3AAF6D5A1AF2D0412784653AE8D8483E + F10EBCABB49EE4765072741AAFA39813AEF3D0E6F479BFFD48540728CB6D37DB + 5A4FA7E047FBFE35FDE7143F56FF9B51A79A1E42DB2F050FFCED4FB0DC7F3A9C + 3B526D8536B3A97FC80C7FD33D71F9C3774E90BF807E3A41FEA013397753517C + F49909FD4FEBFB9035F01112CB1DF37671BCFF25B543ABEB9FBAF5AF81FD19D2 + DA7FB30FFB936A7F59AEC6D95FE8BA12F6D78076AA3AFE2A7C8AD0B7C8F73FB6 + 9BEC6D2A107F87F8633239AA8FFAF43E8DDFE8AFE83349B226F1BFC4FFB97174 + FE3A94477DC6FF19E3D3D159D84B7CC6FF39E7718FDDF315FFDBE0BB88FF8BE2 + BB8EFF0BE07B89FF4DF17DC5FF65F1C3FC3D4D5A50177EC2B9D4823F79F1ADD7 + FD5AE2A7EAFF8C7BFDD2FE822FF8823FC9F5CFA08B75DF32FF21E7FF25CDFFFC + 1FC55A38D7 } end object ActionList: TActionList @@ -685,6 +694,12 @@ object GridPrintPreviewForm: TGridPrintPreviewForm ImageIndex = 18 OnExecute = acCenterVertExecute end + object acScalePrintToPages: TAction + AutoCheck = True + Caption = 'Reduce print to 1 page' + ImageIndex = 20 + OnExecute = acScalePrintToPagesExecute + end end object PageSetupPopup: TPopupMenu Images = ToolbarImages @@ -734,5 +749,12 @@ object GridPrintPreviewForm: TGridPrintPreviewForm Action = acCenterVert AutoCheck = True end + object Separator1: TMenuItem + Caption = '-' + end + object MenuItem1: TMenuItem + Action = acScalePrintToPages + AutoCheck = True + end end end diff --git a/components/gridprinter/source/gridprnpreviewform.lrj b/components/gridprinter/source/gridprnpreviewform.lrj index f1daaf7be..32d6e3005 100644 --- a/components/gridprinter/source/gridprnpreviewform.lrj +++ b/components/gridprinter/source/gridprnpreviewform.lrj @@ -9,5 +9,6 @@ {"hash":231980464,"name":"tgridprintpreviewform.tbpagesetup.caption","sourcebytes":[116,98,80,97,103,101,83,101,116,117,112],"value":"tbPageSetup"}, {"hash":13109990,"name":"tgridprintpreviewform.tbdivider6.caption","sourcebytes":[116,98,68,105,118,105,100,101,114,54],"value":"tbDivider6"}, {"hash":13109991,"name":"tgridprintpreviewform.tbdivider7.caption","sourcebytes":[116,98,68,105,118,105,100,101,114,55],"value":"tbDivider7"}, -{"hash":14901026,"name":"tgridprintpreviewform.edpagenumber.text","sourcebytes":[101,100,80,97,103,101,78,117,109,98,101,114],"value":"edPageNumber"} +{"hash":14901026,"name":"tgridprintpreviewform.edpagenumber.text","sourcebytes":[101,100,80,97,103,101,78,117,109,98,101,114],"value":"edPageNumber"}, +{"hash":116646133,"name":"tgridprintpreviewform.acscaleprinttopages.caption","sourcebytes":[82,101,100,117,99,101,32,112,114,105,110,116,32,116,111,32,49,32,112,97,103,101],"value":"Reduce print to 1 page"} ]} diff --git a/components/gridprinter/source/gridprnpreviewform.pas b/components/gridprinter/source/gridprnpreviewform.pas index 513614fc3..89d0b3cdd 100644 --- a/components/gridprinter/source/gridprnpreviewform.pas +++ b/components/gridprinter/source/gridprnpreviewform.pas @@ -51,6 +51,7 @@ type acPrintRowsFirst: TAction; acCenterHor: TAction; acCenterVert: TAction; + acScalePrintToPages: TAction; acZoom100: TAction; acZoomToFitWidth: TAction; acZoomToFitHeight: TAction; @@ -59,6 +60,7 @@ type ActionList: TActionList; edPageNumber: TEdit; InfoPanel: TPanel; + MenuItem1: TMenuItem; mnuHeaderFooter: TMenuItem; mnuPageMargins: TMenuItem; mnuLandscape: TMenuItem; @@ -74,6 +76,7 @@ type mnuSeparator3: TMenuItem; mnuSeparator2: TMenuItem; mnuSeparator1: TMenuItem; + Separator1: TMenuItem; ToolbarImages: TImageList; ToolBar: TToolBar; tbPrint: TToolButton; @@ -117,6 +120,7 @@ type procedure acPrintColsFirstExecute(Sender: TObject); procedure acPrintExecute(Sender: TObject); procedure acPrintRowsFirstExecute(Sender: TObject); + procedure acScalePrintToPagesExecute(Sender: TObject); procedure ActionListUpdate({%H-}AAction: TBasicAction; var {%H-}Handled: Boolean); procedure acZoom100Execute(Sender: TObject); procedure acZoomInZoomOutExecute(Sender: TObject); @@ -381,6 +385,22 @@ begin end; end; +procedure TGridPrintPreviewForm.acScalePrintToPagesExecute(Sender: TObject); +begin + if FGridPrinter <> nil then + begin + if acScalePrintToPages.Checked then + begin + FGridPrinter.ScaleToPages(1, 1); + ShowPage(1); + end else + begin + FGridPrinter.PrintScaleFactor := 1.0; + ShowPage(1); + end; + end; +end; + procedure TGridPrintPreviewForm.acZoom100Execute(Sender: TObject); begin ShowPage(FPageNumber, 100);