Вверх ↑
Этот топик читают: Гость
Ответов: 56
Рейтинг: 2
#1: 2018-11-25 05:10:46 ЛС | профиль | цитата
Здравствуйте. Делаю небольшой проект на заказ. Есть алгоритм, по которому сразу после запуска программы, главное окно должно стать заблокировано и невидимо. После определенных событий, главная форма становиться видимой и доступной для работы. Подскажите пожалуйста, если у MainForm, в параметрах Visible и Enabled выставить значение False, возможно ли как-нибудь получить доступ к главной форме программы, в обход заданного алгоритма? Может быть с помощью специальных программ, можно отследить недоступные окна программы и сделать их доступными? Если это возможно, то как от этого защититься?
карма: 2
На этом форуме, самые умные и добрые люди, всегда помогут! СПАСИБО!
0
vip
#1.1контекстная реклама от партнеров
Ответов: 1342
Рейтинг: 31
#2: 2018-11-25 11:21:35 ЛС | профиль | цитата
Без проблем можно манипулировать этими параметрами из внешних приложений, тоесть, сделать окно видимым и разблокировать его, бороться с этим можно разве что самое простое, это отключать элементы на форме, тоесть не их визуальную часть, а скажем событие кнопок отключать, дабы "судя по вашему контексту", 'взломщик' не смог заставить программу работать даже если он разблокировал и засветил окно


ну и вот такой простенький пример принудительного перекрытия события по вашему желанию:

Add(MainForm,2953706,21,105)
{
}
Add(Button,10043596,133,112)
{
Left=60
Top=40
link(onClick,4848792:doEvent,[])
}
Add(LED,1996521,287,119)
{
Left=215
Top=35
}
Add(CheckBox,15931824,189,63)
{
Left=65
Top=100
Caption="on\off"
}
Add(IndexToChanel,4848792,189,112)
{
Point(Index)
link(onEvent2,1996521:doChangeValue,[])
link(Index,15931824:Checked,[])
}
карма: 2

0
Ответов: 56
Рейтинг: 2
#3: 2018-12-01 23:22:33 ЛС | профиль | цитата
Rysik писал(а):
ну и вот такой простенький пример принудительного перекрытия события по вашему желанию

Спасибо за идею. А если делать по Вашему примеру, отключать кнопки, блоки программы, DLL, можно ли это всё активировать из других программ? Ничего не понимаю в этом... Хотелось бы надежно защитить программу.
карма: 2
На этом форуме, самые умные и добрые люди, всегда помогут! СПАСИБО!
0
Ответов: 16884
Рейтинг: 1239
#4: 2018-12-02 06:59:50 ЛС | профиль | цитата
Пароль 123456

Add(MainForm,5837408,238,175)
{
Width=790
Height=590
Caption="Автотранспорт."
BorderStyle=1
Position=1
Point(onClose)
link(onCreate,8718087:doEvent1,[(278,195)(278,153)])
}
Add(MenuEx,8114414,259,252)
{
EndItemRight=0
Menu=#9:ДОВIДНИКИ|1:(|5:Марки|4:Типи|6:Моделi|9:Виробники|13:Постачальники|9:Транспорт|8:Персонал|1:)|6:РОБОТА|1:(|11:Моторесурс.|1:)|5:ЗВIТИ|10:IНФОРМАЦIЯ|5:ВИХIД|
adWidth=100
LeftMargin=15
GutterLineOn=1
Font=[Courier New,11,1,0,204]
Bitmaps=[]
Point(Count)
Point(doEnablIdx)
Point(doVisiblIdx)
}
Add(Hub,8718087,287,147)
{
OutCount=3
link(onEvent1,9465507:doWork3,[(312,153)])
link(onEvent2,6143524:doWork1,[])
}
Add(ChildPanel,6143524,329,154)
{
link(onEvent1,9465507:doWork2,[(373,160)(373,139)])
}
BEGIN_SDK
Add(EditMulti,1578808,21,21)
{
EventCount=1
WorkCount=1
Width=391
Height=137
link(doWork1,9813129:doEvent1,[(28,27)(28,48)])
}
Add(Panel,8757508,364,35)
{
Width=784
Height=562
Align=5
Color=-16777211
Point(doBringToFront)
Point(doSendToBack)
Point(doVisible)
Point(doSetFocus)
}
Add(Hashsum,7234742,119,56)
{
link(onResult,1254446:doCompare,[])
}
Add(Hub,10717130,315,56)
{
OutCount=4
link(onEvent1,8757508:doVisible,[])
link(onEvent2,8757508:doSendToBack,[(347,69)(347,55)])
link(onEvent3,8757508:doSetFocus,[(347,76)(347,69)])
link(onEvent4,1578808:onEvent1,[(402,83)(402,27)])
}
Add(If_else,1254446,196,56)
{
Op2=String(E10ADC3949BA59ABBE56E057F20F883E)
link(onTrue,10298077:doData,[])
}
Add(Hub,9813129,35,42)
{
link(onEvent1,8757508:doBringToFront,[])
link(onEvent2,14508946:doSetFocus,[(59,55)(59,69)])
}
Add(DoData,10298077,238,56)
{
Data=Integer(0)
link(onEventData,10717130:doEvent1,[])
}
Add(Image,1136930,182,105)
{
Left=2
Top=2
Width=780
Height=558
Align=5
ViewStyle=1
Picture=[ZIP5651010078DABD9D07F8BFEF58F73F324A4609118542D9545603D1202BB232421AF696A6111AFAABAC0E9B10D92BCACA68690F4228B3AC06D1A08CBCEEA7D7EF78399FEBFE7E7FFF47C7F3398EFBF8AC7B5ED7FB3AAFF739AFAB5DE7C6D73FCD81D7E53FB35DE433DBCB3FB3DDEB33DB690E17D87EBFC0FFFCDFD759CE72966D3BEB59CF7AF8922FF992C339CF79CEC3B9CE75AEEDFDEC673FFB89CFFCF7C55FFCC5872FFAA22FDA363E9FED6C67DBF6E19DFFCF718E736CDFF98FEFE73EF7B9B7FFD83886EB9CE94C673A9CF9CC67DE7E637FF6E3982FFDD22FDDF6FFB22FFBB2C379CE739EED9DEF7C3EEF79CF7BF88AAFF88AC3F9CE77BEC3F9CF7FFEC3977FF9976FF7C5F11CC767B7DE2BCFE4F5BD57CEC73978F7BEE63371BCF7E57D7FE1177EE1897BE7BCFCD6CF6D47AFC5BD70CEB62F9BD7B3BDFDCDFD7AFEB6B37D43BBD856B6A1E7F4FE796F7FF59C3C07CFE3D676723F7FE3B3F7DAFEF55C6C7DF6790DAFED6F673CE319FFAF8DDF7B3CC77DFEE77FFEE174A73BDD897BECFE5FF0055F70623BC319CEB0EDEBC6F7D39FFEF487D39EF6B487CFFBBCCFDBCEC1E6BDDA0FE286779EAB98FF5C702EEE7A3DFFB3BF8B59BEFB1BE701EBE01CBCF3D97D4E0DCEF91D6C88F3E2630FE7ABFB2E766C93E2C3E7E778CFC179B957367EF3998B73CFCDFE9ED7FBE1988E6B9E83ADCFDC7B5FE17CE2D08DDF7ACDDE87FF79FDDE6BC7B8DFE7358EC3B938B67DBB1F38FEFF8573DEC579DBCE76390EE7C58EED66FB2AD7ED47FB5D1C388EB80770891C67E3B3F7781CCEED77EF837B62BC30564E06E73D9718EED86D9BB84FCFE59CC1BBE3B2CFE6BC647BFA3BBF89ABE25C99EEBCC773F04CB69B5B9FB9F73B71AF3CF69EDB1ECE31CEBD6C3E8FCF3931FEFF8A73B76283ED7F0BE79D8B4F16E7DD8EC3B9739E6DCF753A6F9653787CE53FEFFC4EBFD2A76CCAB1CF15E7F292A370EEFD4C5E50ACB6EFEDF7CA4365A6C7BA1FFB8851CFE91C2A37F1F7CA82E29CF9CD71CF7F1D1FF64FB1EF7DBB15E7ABCDFB5606C96DEC9BE27CC58F8EC3B95828EE3B6FFE6FCA739F93B6A06D69BBAFFCCAAF3C5CF082173C31968B0931693FB70D673BDAF693DFBB79EECA2BCF2D4EF92E5767E3B3E7E4B398EFF8F47871E1FDF3CE9CC0333A8695B36EDE43C770EFB1CFEC3D979F783CD7A35FC44AE5AC5BAFEB33542F99327EDEABF39BFA0CFBC9D71CFB8E99EA0BD50FF84DF9E9B5FC6D72A9F2B8F2EFF2F572F672A8E25DECF6B3D815EB72F562DD7DC4753F8B7337F02ECE7D0E65B932020E0BD6952FCEB795F9E269CE8D935FF6FB9CD327C7EEFC218E569C543CDBBF6E539F101BCA2E6568797EAFEB56B9581ED131E0D6DF388FF30EE7A57F2ACBDB1E72F65EB7EDA17ED3713637DBC1F15CF9A39E5A3D60EA11722671558E697B4DAEE639C0E8E4E99DCFCA8F26A7997C450C2BD3E5197B3817DF278B733906EDA0BE270F66B3FD9489724AF134F1BD9AF7BAD96EB5B3D01F5C6BEA97E2B632A9786653C657D6770EF75CCA39AECFFF8C63E62B65E19CF73DAE3899F2BE9812C38E3D31A64C2C97AF8C9EE79B636A8F73781EC762E59158F5FE3B66CBADBD073E8B73FBC6F9B03A7CF58D8E97B995DF89D7698F11B79393ECE17C8FB71C8773B7B6776D7A6DB3A378CB8AAB54A64F9CB71D94E75C13CE5C7B2178754E2E7E3BAF3BB7CB43DCBFE3A1B638F1CA3E60FCA217BDE889EBF2CCC57579D0D4012A832BCFDB967C9F7A6975F8CA968EB13DB9DD762E47E478EFCF67571E7B0DCF3BFBA9789E382FBF9F9C74EADD7B18E7D815CEC1ADDC7A4F2F551F5DD9215772FD389CFB5CE507F6D37C569FA536B7CAA115572FA79B78973F8331F529AF2DB7905F949FA8938A6DEDEA9EC371C07FF675F5587EFFAAAFFAAAC3452E72918D9BA9974E7B66B1DD79A432583E25DEBCB6789BB25C9C3B3EF6E693B6EBD445DB57EAA0CEC56C8EBFCAF1950DC1FB69BF14E7E54B2B5BE50AEB13E7735FB00B36D515E52A2B8CBB6FF759E1FD289CFBB9F2658F7FDAAF9353D71638FB66EA6DF515555F99D8F05A7219E52DFD3765B8FFF17E810B5C60C3B998631FB0DF7BF6386DF1C874F0EEB1BD87A9174E9CF7B9CA6D3A0F29D38B9DDA977CCE29D357389FF6D7B699FBDA661DEBDEE3E419F6C3DE5CDBBEF3FAC5EB1ECE5758AF4D591F90DC79727237315FB9BD92FBA716E7B50D4E9DDEBEB03D95A993FFADE47975CADAA16DDB15E7AE3C56A65767E8EF6256AC7A1E7EE737B997364571CEBE605CACCFF9C0F15699BED2933BBFD5D6CFBEFCAE2E3771E331737E983262DA5AA76FB43E51E5BBFA817394BA66F9536D1FE51562D43963DA79577EA1A3F450DB4A1DA09C83CFEA92E5E4B5C1F87F8FA96E7AB238AF5E54FE22D6FC3C712E168EB32BB66FE79CC7F7DAC3EDB7EAC2E2796FDBC339C7C249F8CD7EE6778F63FF0B5FF8C22770CEBEC614C8E5E525D33E5F2EA01C501678FFDA4A8AF3C99557FC79652FAF7F66EAF1DA471BB3E1B8E1DD39AE7A797DB0E26B8573C7EA6A2EEEFE47D9156BE7A9EEE93E2783F362FDD4E2DCDFF7E62CDB69C54BCA5F2BDB1C2793AB4C1F52DB521DD0FE295F117773F33FB0CA676598F24B5B03FB182BD0F8188E5396733E6DA8BC8BD1E98371BCF3AE6CD3FEAF0CE7FC6CFA81E9938EFBFAFA3B563ABFD776D27B516EDB76EAD217BBD8C54EF023AE7DA10B5DE8C4189BFAC5F42F782E79B376C2DED3E4F27BFED43DDFFF8C6BD01E29479F7E7F317E147E8BFBFA86B4212AC7BB5F3951C7A9327E65039876B7D95FFDADF16173DFDABFEBEB1133EA8862758FB7742ED0FEA9ED9073806B31EFC67737FE773FAFD571569B867A4A633E9C3F3C567F4D75F8CA8FB6C5E427C5B963AC76B0E9DF07D75CD77DE45DD30EDF39B836063128CEEABF9E769EBDB881957C17D3C5B93816E3F82B57BAA7727CCF76B2E7035DE1DCAD5CAAF362FDFA7B3AFFE4DED55F26CEA72DA77CD6F9DE7E30D68A3E2CFEA63E5A7F776D74CA578EE31CC83DE5F5E4FB7216B15ECE2EEF2967938BE8D396173BF6BC27F155FCCE79D2E7779BF19BABF8067F339690F3382E3D5EFBD5F4A155EFE83D556FAA5E5D9E33B9E7E42A2B1CC9D7AA077B8C58DEF317955F17C313CB2B9FD0FC8F6DFA9DEB0B99FE8B953C5FE948EDDBFA5A678C9DE79173547E813BEC7ED5136B4BD88B6BD41E43BF73DCC9E0DC71E4B8F8EAAFFEEA8DBBF31F36767EE33F36CE5D3CCAD1BDFFDA4539FFC4EF8A434F3E513DD0B1A2CC99FC8C77EFDDF65387B7BD8BF7A9F75626F5BAE56AAB7960F21639C0F487CDF8B67258FD48D3F75F195D0C63877413D32B795F9CBBDFE4DBD30F32713FE7C369F75AC57EC9236CFFC6D835D6A07C548C4D9C4F19D77B518E199BA34C5E7117398BDCC858078E03E7609BE3B5AD173B8D73A42F3B97343642BF57B9C6B4E1B47DCB87AB578A47E70DB914FBA87F3BFF71CFF29B72FBF2C3BD6BD71F50FB6C6D5033566915C739E32395E5F51B38CE1AF33571DE6DE25CAC4F5C4FDC8BF3C687ADE297679B4C5C4D5E597F7DC787382FAF565688A1EA93E0EF6BBEE66B3E4BDED65FB4F28DCAEBE9EFCAE0153797A74CEC3B461C27C540ED4E3E6F63E71B07BEB2BFEEF1B4C6A5D7BE3E7D66CE47F541F9CEFECA75CFAD5EDD38AF6EF31EECA3C6854E3F73E3E73B8FAFB0E37F8DDF2DBF571F685CD8D43F8BFB62FD280EB3E23ADA5EAA6B773C4E793E759B19135219D239AFFAA5FD35FBA07EBDDA40CACDA70DAFB1318E23E51ABFAFB02ECE1D3F5E4BB95F7B0CEFDE6BE3DFB55BCE3970723CB9846D549C4FEC754CC9F3F46F695792EB7A6E70658E94F307C7C9DBDA6EBD9672A1BFD767E173FAB9F6DFA36214A64FA93CA73619713DF312A64FBF327EC5D3577A67715E796FEC6865D31E4F5FC57F740C946B6B03A8CD50DB75FD32736E5EF9887ACEDA168A733931F8E41A7CAF9EB992EBDA75E4F1EEC7717074EE877E318FEB34A7F93FB987C6EE4FFBFFE46CDE5771DEFB9F3168F5CD754CF11D6C707DFA8CDF2F79C94B1EBEEEEBBEEEF06DDFF66D876FFDD66FDDE6BFC6569727CEB809E5F6F42BA9D33AB667FB57975DF96F8B73E5E6CC51AADFA97A6AE3BBEAF79CBA69B793C5B931C0EAC653DEA85B55CE94ABEDE5B8B8D9B6F5E7289B66EC58E3A8F467EAD33466A97E0FF75776D9B7CA66FB997DC00038767E57E65FE21297D8DA174C375684FF95373FFCC33F7CF88DDFF88DC30B5EF082C36B5EF39AC3339EF18CC3831FFCE0C395AF7CE5AD0DD197D547B9AE7E409F4319585DD0313F315D3FACB8E2BEE927B070873BDCE1F0EA57BFFAF07BBFF77B87DFF99DDF39FCEEEFFEEEE10FFFF00F0F6F7BDBDBB6EF77BDEB5DB7E7E1589EC97817E702DEB5B16B93E477757FE715C7059F3B5738E6CACBB4E5563F6DBE91B2BE3E52EDB3AB1CBCE6F5AD6C31C5F3E4387BB18C8D8FAE8EE4589DB6B255FEDA1C17537634F745195A9FF4B4AD5726D94FDACF2A9FF9ECB8B31F3896FFC19EFBB32FC783177EF739F84E1B5CF18A57DCAECBFE17BFF8C5B7DFB0EDDEFEF6B73FBCE10D6F387CE0031F38BCEF7DEF3BFCCDDFFCCDE18D6F7CE3E11DEF78C7F6F9EFFFFEEF0F77BEF39D4FF4117AB3328ACF8EDDC63397C7290B2A43EB1FD0E7C4BD22C7EF79CF7B1EFEE55FFEE5F0F6B7BF7DBB8737BDE94DDBBDFDD33FFDD3E12D6F79CBF6DB473EF291C36B5FFBDAC3D5AE76B5ED99C032F8E35E680BE510DFB957F93ED7A2FDD1C1B957C68863AEF19CF661ED082BDB6373A69491CD435176AD7C4F33C67585FDBD18DD3DFF92BE22ED069D7FC5B9CF38E5F66AAB3D447936F9C6ECFFE6A7D53E234F170FF20DAF45FB7FD3377DD3091F0478E678F4148E4756F37EF9CB5F7E7BE739D511C0339867BBF4A52FFD59F97E6CF7BEF7BD0FEF7CE73B372C212BD9C0D7BBDFFDEEC3DFFDDDDF6DB87AEF7BDFBBC9755E5C1F8C20DF793E394F6D4E8DBD726CAE746A9F571F00F7C833DEE216B7D8C696638D7BE05E7EEBB77EEBF0D6B7BE75FB9D7109D61FF5A8479D18F3CE05B60FFD8A1FD5FB509E9B17C27C4FDBF152261827649FEAF39D76E659BFA03977F50D4CBD7BCFEF3AED93C5BD76F855ECE2B4BB4C7E5E2E21B65631ABE57947E17C72BAC95F678E5079BE3277FAE42B0FF5955CF5AA57DDE6EC9FF9999F393CEC610F3BDCE31EF7D8B82BCFCC7ECA757937E7E41AC85DDA50BD8136BDFBDDEFBEE1FA6FFFF66F0FEF7FFFFB3799092778F6B39F7DF8FDDFFFFD133C010E73B9CB5DEEB3E623ED1CFADD6B67D167DA71DBFEEE58A86C617CDA5660FA3DEF79CFE1B9CF7DEE36C67EE4477EE4F08BBFF88BDB3D3206B967FE47A67FE3377EE389EBAAB78837781CE7A3EFB94F5EFC0E2678D13EF0FFFAA738B6F995D367B88A69E87F3346B079B1ABD8A83D1B65F1BEE2342BBBE2B4F3579676DE578E4E5D66A517AEE257673CA9FBCE38C1B9C9B51BC7C2FEDAB9392FDCE1F5AF7FFDE1C31FFEF0C62790BBF00C64DCD5AF7EF58D83D046CCE11CCF67B0435F739F60DD39F97AD7BBDE861570FCE637BFF9F0177FF1178757BCE2151BB7A12D9083E0E77BBFF77BB7775EC698D01FCC13C68EE927721E948B94AF3876CBD96B47E539E917CEC5EB2637B9C9C64998B3FAFAC11FFCC14DC6FFF55FFFF586F34F7FFAD387FBDEF7BEDB7FEAC3CAAEDABFC09618B9D7BDEE75F8D33FFDD3C36D6E739B13E7B5ADB847F91FCF561FC8CA8FB867A798DF27CE678EE094F1D30F7BB2385FD9C37A9F8D29A9EDA4FE84A370DEBC0279606D76CDE759C5058A73FABF3E7DEF07DEF29BBFF99B870F7EF08387873CE4219B0C0293F4F1F39FFFFCC3377CC3376CEDA1BECECBE7A76DBC6FEE917D9EF5AC676DDC003EC006CE9FF4A4276D6345CEEDBD3B9F335639966761AE0057C688D586D25885992FD898FAC69F8975DA833E84C3F01C7C0777F439E39517F2FDDFFEEDDFB671FE077FF0071BE792E3CBBFB5A9D126B42BF7CD98F9955FF995C37FFCC77F6CF3D5652F7BD9C3777EE7771E7EF4477F747B4EFD2CDAE69DA75731988D599863C1E76ECCC751189F38FF5C784B75C5FA0DEACF6FAD85C9D31D03E5E195E3D53DB4F3D6075F2E523E24D6670D2EC718E7E5FE91E51FFAD087365976CD6B5E73EB8BEFFBBEEF3BFCC00FFCC02667BFE55BBE65B34FFCF11FFFF1E1E52F7FF936EFBFEC652F3BBCF8C52F3EDCFFFEF73FDCF8C6373E7CFDD77FFD765DB80F733F1801E3D834E0BC77B9CB5D362CB00F38E39EB83EE7973BAB1FF04CDA28AA4F948FD8EF95E3B52D76BE348755BBA6BA2AEDC08BDF69675EDFFDDDDFBDCD63DC33F3113AEB0FFDD00F6D3AACB1891EE378E758CEFBF8C73F7EE363CC0B3FFEE33F7EF8A33FFAA3C3BBDEF5AEC34FFCC44F6CF326E3BCBE4CF5D86273157FA1CFBCB1F6CD7D99797CB3B6C22A86A0583F593DB431A0CA109EA1F5C5E49DB517AA774FD9D37A24CDB76F6CB97629ED00627AC606B85F63D2F563D25E3CC7631FFBD88D9F804BFA179ECA67FA89399817B29EDFDD0F5BDC3FFEE33F6EFBC375C004787AE4231FB9FD066F61FEE7778EB9F6B5AF7D422F63FE4076F0522629BFB947B811D8E7D98C1F687C31CF57ACF4991B97E6EF1CCB73A207C85DE84BEF057E7E9FFBDC67E31CF0289EE7CFFFFCCFB76766EC3FFDE94FDF8E87EB30C7A1B79C72CA29DB71D84BEF77BFFB1DEE76B7BB6D729B176302FD1AFE879E8B2E7EF39BDFFC845DCE181BEE4B5BA1989DBEE9D6DA3016C7B866ED1EF59BAE6A1BCCDCEFC9D14FD6AE589C77FCD58E2F6FACFE54BF4BFDD1333FB2B695694F691EC7F4E7DBF7B54DC8771C8B62066E016E99A7D11B79875B83536CDCCF7BDEF3369CF31DFCCABF91577CA62F99A7F98F3E66DEE7776C17EC0786786143073BBFFDDBBF7D78C0031EB0E9B9DC4B6B12C1CFB957F8CBA52E75A9AD7DB96F6DA03C9BB67BFBD039CEF9111E42BBD24FC851F6E13BE703738F7BDCE30EAF7BDDEBB631C938E439C0362FE6237817FA0A6DF2AA57BD6A3BDF339FF9CCC3BFFFFBBF6FFB728C76C87FFDD77F3DFCD55FFDD5762EC6C00D6F78C3ED7FCEC1B3D306B4CF1DEF78C76D0CD0DE8C5FF5D719EF316D13ABBCC06261D6A49C31CA731C4CDF696DECAB7C51B7E6C36B1FE8FC61AC89BEC269036F2C446359CC09D8AB99A67C3E0EE79E9F6BD2BE6CEAA5FCC6DC75D39BDE74EB47EC69E0F42FFFF22F379B32F21C2EF2D33FFDD31B0E1803C829C600DB9FFDD99F6DD8060BC872F538FA9763C13B58E1785EBFFEEBBFBEFDC63EE879CC0DAF7CE52B37DBC7ED6E77BBED3EC1A5F6409E03992BBFA6EDC0BFB1858E63F803FD05F6B57D8029E6056C48BFFCCBBFBC712FF0C83DC24D18B7DA18B9C79FFFF99FDFF6E7BEC026ED00A6B95F64B936227454DE691FE481E384F3C1E5B807383EEDE47CC6F99FFCE4276FF7555F5BED29D3BFB88AC9D88B1B9876C9A372B75B8F569CAF6A1DAD703ECFDF5839B044DFD086C68337C7ACBEFDEA17AD97E29C25DF696C4BFD4CB5193A16E4B8C62F222FE503BCA367F262FF273CE1099B6CA7DFE0A6BFFAABBFBAB50972F0A10F7DE8F63BD8002B7C46E68119E67070C05CFF277FF2271B3618078C17F6E537F00B2F400E325EF88FE3D917ACC1E539077677390EF7441F3827DAEFDA367906DBD939E12A57B9CAE1177EE117B6F38143C715D805E7E08EDFD8B4E9F31F3E80A73EF5A9DB3DF09DFB635FF0FB5DDFF55DDB58610CF01BCF43FB20FBD9C0B472FB5AD7BAD6E1D18F7EF4761CB281F3A1FF3087A1A3D0675BEDE5FFB1C5AF72392AAF3AEFCFB8EAC66A57CEEDE17C55C36EFA4DF7647A73DD5A27A7F1288C61E63EF3299D77AD3B3BE579F3CB6A4F5486D7A63E6D94334F541DC01C313004DE19777C671FEDBC3CCB95AE74A5C34FFEE44F6E32185C6A1783DFA2B3C2371EF188476CB2197DF3D77EEDD7365D14D94E7F837FDE91D5E00C2CDFE84637DAEE0F7D86FB78DAD39E76F8F8C73FBEC939B0C6BB3E25368E655C310ECD65E13EB96FEE95F6A35DF80FB97DDDEB5EF7F094A73C65C315B8E578CEC7F8615CEA9F827BFFF33FFFF336D7205F1FF4A0071D6E76B39B6DFD8E2EC918FFAFFFFAAF0DA38E77F6FFB11FFBB1AD7D183BC871C633E762FC705EE53C5CEDFBBFFFFB0F57B8C21536BD9DF1C07D3037FCD22FFDD2863BE61E6447E3375758556E365E6E55A36415CBD738E6952C6F7EDDCA4FBAE2E7FA00577579943FDAAAF5D934D7A6386F0C52B9DB2ACEB1F6C889FFC6CE290B94E7E25CD96EAC0AD7301ECB791F398E9C633FEE83E75587E47FE70B7829B8A05FE13EC872FA1F5CC03BC037E31C59876D192E0F1FA2EF8975C18E031EC023630499C93C01E6F12561FF91AFF21CB4E5F77CCFF76CB63CAE0B8E182B1C07D679E737E60D3E236BB1136137C51FA09DF09BBFF99B0FD7B8C635B67188CC863BC1DFC0ACFC8671CA469C177625C6283C0BFB297ACB4B5EF2926DCCC3DD980FF091F1FC609EF1C698C13FC6B1E6B721EFE85BFB7F72F1DADBF662F18E8A85EFB6AA8D3473AE8FC27A71BE8AAF1783E6C5CB2B1BB7D938B7C656798E9903DCBA0FCDD1979BB4FED6B4251BB3A22D8F0DFC721D7995B20399A9CF9F673727886B817B30ABACE1850F157C820FB0C967B081CF88173E74E43D320E3C220F99CFB1F5C07D3917380363600BEC827B6431E724F68A36406FFDB99FFBB90DFBF01FCEC37EC85D7992729BEFE010DC31D6E827E40C76426C288C49CEC1BEDC13C7C1AFF11D20BF8D7961EC7DE2139FD8EE1FBB515FDA6DC00E2FFA8631CC3D31AEE07D5C1FF90E76C013FD61DE75FB6B0FE7AB9CA6553ED85E3CECAA5EC42ADF7AD60998FC65AE9120C65BFFC79855ED1CADF723EEB5D5D436533F40F9CBCCB16F8C78E398BA0F72107C8259DED98C51E17F70CD77DB4E1ECC7EFC67CE84F14CE652708FC855FA16CE8A9F84CF7076FBFE4E77BAD38639782AD805EF7209F0884C644EE0DAB43B7215B9F9533FF553DBFDDEF6B6B7DD621DE107609B8DE3190FFC263FE1FCD874185FB419E7BAE52D6FB971AD97BEF4A5DB98C13E02AED50BE0ECDC076305B9CF3865DCE34B60ACCA7FDC1FFEA69F8B7985F17799CB5CE6B36A519967864E621C009832A6D17A287BB6959957326BF71567AB3CBED59A0FABBAE4DA6B56EB74887571BE8A7DAEDFB2F1E2F5BB372FC17765B3DFB51B9687776C781EED6E9EC3F3188FE2BBF2BC38D70E479FF9997EE67AE09BADF938B419FB20A38CB5428EAAEF295BD5B5C084F14CD7B9CE7536D9CC1CCFFECCE9FAA8C029C7E3ABA1AFB0673EFCE10FDF70C8BEF0107800FBAA47B2C19F91B56099E7415E114FCE1C020F973B733C5C82F3717F5C8F71C977E6116CE3D8C33956FFEC777CC7776CB8C7CFC9BD716DE620F02B07B526B23140C62B801DF35E5B07096C2903A71E599C4FDCAE6C32736CCC1898951D70FA95A67F74CA74713EF37ACA8B95A5B30E4AED7DAD19D4DF1D3F8DD5686C985C7A9567DFFCFE8EA37218E4241CC49C657563FBCE4DB9E5F5D9178CEB9F8507686F861B6353030BF077E730FB8BCF608463918B3FFBB33FBB619E63893DC09788CF061F15B8621C306E8C79E433B2176C8371E6886FFFF66FDFDA9D71819D45DD57DEC377C6121BE391F82CF8347E4A9E43DF262FFAD77C2ADA0E2CA0A7723DAF8D4C678EE0F9D0D3691BDA14194D9B8A7563F2B5A9280B5BAF63557F72E65BCF3A4F2BEEB0AA6B39E3FE6A0BDC5B9F66B5264D715E1D41EC8AAFE6DFACB689F362BD985FD5009DF5535A17CBF1B7CAE5E433FD83FC43BE6B7F51AEBBC9596807FA9E71A1AF170C3327A3438227F43DFD4BC86DDA957EA6EDB886767BE71A5E7256CE899D1BBDD57859B0A5FC06F3E894706678111C9D78045EF0A3E73CE7399BEC46EEA21B60CBF9877FF8878DDF706F7019C60F7619EE018C72EFB396B63926C6D6F01BF885CFC377980FB82FFCC15E1F7C988B4BFB5A0B50BCE9EB6CDE456BBFD63EB692E9AB31F0B9E07C55EFF7289CAB8F4E395C5EBE87F3D6F89975E01AF7D57CCE695B2907F75AAB5A2DB38E90DFB5014D9CB3A9A7F27B631B79E7D98DED7AE0031F78C27E683C08BCDAB9997B662C29CFB807EE0939CA3D803574447C93E0B23193F00CF08D5E8AEC56DE3376B0D560EB0777FC0FFEB1F320FFC136E721DE849848FA9CEBD057DA049CAFE5CBB6CBCA4ECDB19C475F3EF38476476C99E46EB4468098838FB7CE486D6AAD5F39E3E65B2769EAA1AB6DE6E195ABD4EEB2AA6B3DE301563897AF4FAE51592BE656B2FBB8AD582FDF9EF9C6C7F196999F5F9D60E6E6BB69E377FE967FF059BB239C018C216F99CBE97FB04A2E036DD6B9C6B1E41CEF7A94C407C22790D5FAC9F90C6706EFE01B8EC1FC401F61CBC09E07E63EFAD18F6EE38AEB2363D91F6CC3A38CAB6F6CACEB298101E7B1E26B358FCA3F99C788DDC4EFCFB5D45DB93EFA2DFB58A3DB7C2BE6AA8E9FD6EDAE3D61FAB76B7B3357BBF1DBD3F632E374E7BA24AB5881BDF5C55638779B7912D5136BD76B5E57F9F71ECEA7FCB766905C5A6C8A496D97F2ECB6F18ADBCCBCE679ED1E6BEC081B58E545BFA3DF61A340CE81CF273EF189277402708DDC767C9293E49C840C441EC2E5E13BE006EC722E7084BC24D783B905BCB03F6300FB1E7896CBC091B03112FFCA7EF415FE507C4CF82FB1EB8143780DFC067F00FD0806CCE55FC99FF615E30BEC22D38DC3647CF3ECE8BF8C6BCE877DDCBE35B7567BFFCCE96D4CE21ECECBA5660D9969579C39E293CB1C1507706A715E19B0C2CBCC5F5CE9A12B7CCFBA28C578B12F9F6E8DA0F2153F2BBF573AF2ACBDA8CDA8761CE41658A23DD0E5B01182396C75F8808C73E8B802F3C813E63F6CEDC84264357A2B9C1ADC821B3004DFC72783BE4AFC17FE7279893C850DCE8CAF883E442FC4FF033741BF85E3304F3076180BDC1BF29F73B1AFBE6FECF1D5B9672D27F98531BCF83AD19B99BB8805E3786334D0496957EEA7F53CA62F73CAC3693F394E7E4F9F507DF05D8767C6C134A6ABF974278BF399775B7BF6E42DFDAFF90F13E395A595A9B55BBB15E7DA4EC4B13CBC7676BE4FFB4AEB64CC8D39DEDC48FC47DA0C38D61A157C87B3D31EB4BF1CDFBC0AF08D4D1CDF0C31227014744D780EF155E01059895F927312D78E7D03AC1A8FC23BB977C42480115EC867652CFE7AECF0C86DEE1139CB9CC1FCC0F800EF8C27B83B710BF883786907B49D1A03CAF37FEDD77EEDC65B681FF1AE6D062CA9B39A33AB2F90E3AD133565CAACA733F5CAD62539AADEDDCC412ACE67AED26A2D8D93C1B9FC7CF2DFF25CC7747D36E24CF9BBC717E67898DC599E721C6F3176CC73B6FE61EB8C8AF35943DA3A0ED646643FF0657EBFFD443BE12F5187555EB02F76466C208DA112BBFFF99FFFB9D9BAE90FF213E030EE8B8C8713E15B84771B336FBC1FE74676C399C0BA31E3D857E0F2EC077731269179C4D814783F5CC41A99F689365CED4BBCE3F7698C84EDAE9CD60F411E91B530AC05A27EDF3A957298AE59D37A8CF577AF30BEAA4DDBB5335739792B9C773DC393C1B972B27AA078B5EE147A0FF29067D66F83BC6BEDAA1E3FED35DAB1D9C4BCE79A636155C3B631C1F669EF558C6B97B77E2C5C8076637FB1EE3D730C6DCC6779187648DB8BB814EDE0700FE42AF214ECAABFE2BB249E0A3EC06FF25F6CDD8C0F7350C11A7D674EABFC8017F642F405AE03A700F7CC07701B6D9A8C07F4C6D6D5603CE9B7A56FB84E6507E3D6DCC4CA63ED52EC4F7B718C9CB1314C9C439FF36A4D04C7D4CC1F519EF87FED91F5BB9AC35E5BCBCCAD5AADF1D75CD3AED7316BF6B6AE7BED887BF508F94D1B9ED8D4C635F9CC3CB6EB47CCBA87B65DE788B9D576AEFDC0F3743E9597B6D6B33EA91937D33E673F73E9D5513937F618F8B1BE1AF4487D377065F80AFC1AB90AEEB465B01FF150F822B5CB584F8777FD2EBCD396C8505E6089D80163B8E02C9FFCE427375D11FB272F7CB18C37380CE3897D91EDCC17F42558E71918A33C27FD65DB1A2BA92FC8B1DE39BA58366648FC3B7FBA796CF31AC5DEACE335EB48768D8B69379FF9F5ABB9A0B130EA177B71EAFA49CB37A62FB13296E744D6D156DAD918EB2B2E3EEDEB626BB64D65C78ABF9873D6D817D7CF72DEF5FFDAB81A93C33DABDB72CFF6BDF767BBF23FD8239F1E7B38D8D53602FF40D6C2C7F90F5D149B08DC05CC836DF08F5D04BF3FF3242F6C189C8F7A47F83AC9E520F60F7F127616C60F791AD856B073C3EDB1F1505F003D00BC735DE614EC2EDC3BF78AAECB75995FE032E8018C0BF24D94EDD8E8B98FF621CF0F57520680E33D9DC93839BFCB53DD5A3BDBF66C1EA0DC7DB54E7DE355A66C9EF1ACAB35A1666C60EBEFCF75668CF72AA76D4C496B5E39066867E64236635EAB334E5DB3EB5B15D7E2532C8AE969732C2F9F38AF3DC0F3B6B68FE7AB5EE1FDF439C1847997E486C117C0361BF835BE164C81717C2BE8A39FFAD4A736AECCEFF8F96F70831B6CB612CEAF6DC3BA418C13C6087C444E62DE1A6309D9CC79B5E9219B8953215F9BF1636E33B8BFD5AD6EB5D9728809C6B76A3C19F61CEE131B257D2F47038FAE1F499BA097D28FB6E38C9BA8FC17E7ECE377E345C5BAB8579F9DB5ECEB3B5AE9A2ABB5592BD7674CFAE4E9B53536B774AE5DDB7ACCD51F3AAFB7CE4D7D261DD37291D97695D9CE8B8E09FDF2C61A7AEEE67474DC551715E7C600B486B4FDD5F816F39479266D29DA6078811B30879D11FCC10FC0397C1C9CF28E1CD63668EC169CC276A2DF781103C07E60D39C0DF887F15CFCCE39E039C664F14EDC177D672E29FD46AD01E43BFB3A5E984BE87B7239D103B0D518F7A8BFC99C109E997605DFC8276C89C60529BBCABF95DDB6917C15B9C6463F35BEC23992CFD6926A3CC2B4A9AFD63758F9FFCDC1E8EF5DF36AB5750D81B9EE92382D86AA93F0598CF95FF3E766BEA6386F6E9BF25AFC2B5FE58C62DD36AF0DBDDC51DDC87B900BD92FEEA78EDA1C35F7A19FB82E631ADF0CE7424EEB170747E0D1BC2264363614F30EF80F998C0D109B37E76C3C321C04AC11AF821FC9F8F2CA75F353AD9D452C3BFBC2F191C7BCE0EDC61773FFE8A4C62DB21FFC07FD80DC0F7CAC8C03EE17D9CEFD595BC9B5C0685BE61BDBD7FC43F356EC9BC94FC4B8F649316D7BF25D5D75AE2735EB9E541F5DADBFD4BAC9FA5B67AD95DAD1576B0D74DD20BE8B739E81E71423DA55BC77E724312F9E3AEEE567EA96E6FB747F757A71CEF1CD9998B1581D1BFE671FA80FAFEC345E4759E63C469B713CEDCF77F62117C7F86C73E094E7FC0EAECCA50797C442C10D90D78E75AE017E781117CB3EE00DDCC1993907C7C2A18D2D01D3C861E4B8F51A9D1FD8182BEAA6CCB962003D947B34FE103C63CBA48FF121716DFE770E215E8B71E018E43E955FDA1C6D4B312E3FB1FF18079D07DCBFB95DEEDFB9BAB2DDADB9958E81E91B6A0D8CDA7D1BD33ED71B6F6DF5B976907AA8E3BAF2594CA9EB95178B71C704CF2A67A88CEE58A99C151FEEEBBCC7BECA75798CC7F77373449D87EA23B2262ED7A19DB96EE5BAB591C107B2153CF06EBD0B782EBF5917039B06FF833FF283916BB42DE752C6712FC47F994BEFF1BC83476C8E1C8F1D06B9CC9C800CE69ADA21ADE7A83D85B801FA966741B6D357DC3BF597B0F5606364AE61CCE07F028BE8BA8C1BE43DF7C2F9C13AF135DC2F318A9CCBBAE98DD7779EA49DDB7713E7CA1CFED7DF20DF942BFAAEEED7FCB355BCA37A6BD7BD11E793A34FFF52D7FC5DAD0D233FAFADA832B735E18EB2B13B8F55E6F39BB25A5E32636895DD5C4B1C3B1EEC0770C47C230F51BE2B77D8CFFC20EB8A705FB493BE3DF66BEC39F63DE258C09F711EE6E32053AD07610D09300356B065B8E647F50EDA15BF0EC720AFAD2F8A5D11FDF4631FFBD8864D642DB67CEC26D84AF00361B701D7E806D83191FFE05EFC939F6D7D39AE672D609E1BBF3D3619E32CB95FE221B14DFA4C8C4FC62D1C0A2EAF8F8CBC52306B5C9BF370398D98567EF93BC76B73737E15EBCA7AE5E3CC45986B82985BD99A2733EE652F5FC9FFE73ACF330E469C37B74CFBAA386FBCF5CA1FA4ADCAFDCB1BE41F8D979503765386D046E247FB979CCAFB52D7F53CDC1BBFF35CDCAB3552F0E1EB2B623FEB3EB30F72177C6033010FD83DE02AE0CD3C646369E1D9E41E930BE11AF1FA5E6863EE1BDB1D9C01EC9A1BC43DC21790E1F068F446F458F635A691DA03E0186CAB27700EEE817DC12EFE27FDFA5D8B8667E29EC0B5F29F7106AE19C3F85EE12EDA42D10D789E5BDFFAD6276A56D3DFF2169E89675116D3EEDC8FF18BB5AD38F756976A2CB458683CCC8C09986B1DCD1A2EAB75DF1A3FD0757E671DA359675A9C5B5F5B7BA1FA84B85EADA15C9F8E6378CE09B68DDCA4786FBB548F719E9013F93B766864BBE34B7932EBEED2268E0964273186EC27A7317F92FE377E1679A70F080E00F6AD5301DF768DA6DAE5F54F33E7D0D6D861C03863861C0AFD41C856B802F70CB736361759CCB9985BC0BA761A7E079F8C3338096364E69FC87FAD7DCA7919B7E0184C331F314E90E1E60FE13775CEE27A1C471F8067E37CF95CFB82F281DF95DDD597EC9F556C92BEEBD6B09A6B9D4CCE7DD4BA9DDA5F94E7CA71B8CAF40FCD4D1D55795E99DA7506678CF8B43BD10EADA952BD529ED2DCE5CE735ED3B122CEF5E91867A02DC6312617E2BB71A7D647E1DEF8CDFC7E7C2FC457C13DC0391C18ACC30DD441C1BB3520C017BE1BCE439B9A3FC677E70BF0CDBD731D5E9CDB73112BC03360E3A67DC13CF5C9A97FC171D853685772EFC1287E21AE874E4C3F6A2707B7F83995A1E66C9BBFA70CE277C69AF5B378672EB0C612730ACFCD5CC1397976EC34F23CE300684FF50D639389EBB46FCBE1D591EC9F550CDEAC49D858C1AE1D58DDB2BE9FAEB33A6B51B47EE76A3D8CD56FB5E33526AAFE94DA35E6981673F51FA88FF3DB2A77B37342EDE5F216E5B9F38B7143F2547D3F8E2DC706F7C21CC53ED8FC78716E3088ED100CAB5BB259570B0EAE0C27CF87BEA67DF59368C36DCC80F604C611E730A79ED82A3834729D5C4EFAD1FA13D446E49AC87930C835E5D9700D5E7020C61BF2174E633D0FDACA584471686D5E6D27F89598AB3837C76357E79E98B3CC71E23F780E75385CF30359C51884EF31EEBC966360724C39A573A7F7D7B881BD3C81C6BDB47670ED28F51FADEC2DDD660D5DB78977ED25B581CF9C9FFA39A78D75EA94F535B40D9A5FEE793C47ED31F5D1D37FC8187DCA9E5B9F9BF3867695AEA948FB6167802FE32787938031FADF1C7CFA1E3907BEF90D1F3DF2D7B5008C4337AF813E962F68A7642C3A378021EE97F6C79E0397014FE804C851EA63C01DF0FF8349F457FEC37ECEF9E0EFD460317F9A73AA833BD76B533216D01823EE8931475C17CF0C57B18E01F7C1B333C6B16FBA8601F163E08A3E81E359F342B96D5DEAE628826F9E99BE690C487D1E8DE39839F4B5BDACEAB7CC3800F7712D98B92EEFAC45C7B65A87BDF1ADB5CFCDFA2ACD8968FCC9E467D5CFE526B68363BDDCA7DCDE31E158E078B8B9367AAF61BBD9FF8D674126695720B69B7E06E3E0DB1C1A6C19CA4BFD35C68618B3AD1D87BE743E311ED27BE2456D16CE0196B0EF81559E09998E8F9E777C9AE4D851D38839059F3E721CBE82ADE5852F7CE1D617E8A3C4AE9B4FC7383476DCFC7A6DBFB515803BFDD6F42FF134CC0BC86FF4549E937736C633F307E30E7B107C49FF1ECFAD7D8D67440656968B7379BB38D78EDBDC18715E0ED35CA7E652ACEAB54DBBCBAA4E9118B6AEA831B87C760D30376B6C6B8B6E2C4EB94B657979986D50FE33E3E39449E56C8E07ED50E25C1C1B2B5DFF73F993F72A4F653CA1F3F1193CC119C033720C9EABDDD0BC1F73DFA9AFA80CC07F687BCBB9E40ADEAFB960E081585BE4B1B9D4C870DB19FE028ED9B033B28FBC021EC3D80073C6CE30CE18B3F007C68BB9CACD7D50CE6A07730D21D759E29EB977E43ABC4DACC3CBB806E306FBA6F1C3E68A6267248E0CFC727DEDC1B465F9A8BE21315E5FEA2A7668C636CED8D3D6709B75366B5B59AD7DD438DCD6CFB5B6A838571F6DAC6AE3A566BD95DE77E578EB644D3FA963A2F585EA4BA85C72EBFA72AE13829C51661863CD3D35AF403B18FA9F3643EB7CD3C7D6F9D19F883CA7FE8A73A4725279639D25ED99C6B333575ABF99FF991F3837E3453B00FD405C00FCDB7C2063ADCC85E31DD96E5C17361BFA8767403EE3B787CF38C6CC7B1633E644CDF9B29C90DF19EFE09CF1643D2F7409F81A6DC378C28F459F8373EDA5C635D656563FDDB405CF35E4673EEF2ABFAFD8D6A6D59A397CB7F674B9BAEB03ACD65F6C8C6279FB6A1DF0DA849CC7A6FE589B8A7A89FCA2BEA4FA4F57F381D8D7F6DE9874E74A6407FB6A63E1BB1C0B390C2EF8CFF5D8905BD6E5C4DE00EEAD676ECD2DECD7700AC796D890B76903E69D3635E78EEBD84F5C1B19CDB5F0C358A38DFC226426D737BF13AE0CAE91D1FA7018237CE777B047BE2AD7E33CF4BB3E46F3918DA182471BD35099A1AE547D08F9C698B11E36EFAEE1C13B63CFFBB4BEB9325DFBC2B49797ABB7EE667D8AF64F797BEBB64D596E4C8BB114D636A80FA932BEFEFEA3B05E3FD1CACEB2CAB36F7B765CCBD7B48137BEA1635DD9EF7850263BBED43F1B0F0086F5DD733DFD24F5A931E699AB592F8BFE4366C13D9155C853E5BA31ACD8D5E467F200E592350C6A4BD6F6D21838DA8E7142BD73F8B03997F887BC36634BBE80FE07AEC036FFE1270573609CFBC5F6875CE578DA82E7A10DE052F23ABEA3278B136D07E595B5616B2FC197807ECBD83297CFF9CE7C29E615E21CADB9CAB9C17BE598FE516D40F48D7937ADBFE6F5EBDF6A1E4EF9B9725C1BB938EF9A76B3D6C58C6B3999AD31E12B6E55F95B3B8ABEFAE62F3427CE73763E5BE5315B63453FCCAC15AA1C512FB57E8EF658F635769CFEB28639F2D1B8D7F629F5D1C1276D082F951B759DE3E25C9929B668336AB9A15BE2AFC4A603F6E04BD7BFFEF5377F2A3817D7D8E5E529CC2BD8FAC0367E4BB0ADCE80CCE718F2E7B0FBC02DCDD176FD23DBDBBAA8FA305BBFCC5C1EE53C9C8F6762DC1053832E0ADE8D29B3FE347200FDD41832F0479FC9C7ADAF2D1694E9C6E595EFCDFC49EFAF796BC694187FABEF4D9FAF6B4CCC9CA41983BEE228731D69B6C6B1349E5B99CA73CE98C3FA38F5D3AB93CCDCD9593BA0399ECA0E71EEDA2CB535D296C41E19DF65CEAF75D59055D47AA0AFB03B1B9385DCB6961C3295CFDC977E25AEE7739BEB65AD54DB41B9A23D99EFE01ACEABFF11BC60B7243E85B105565DDF483E40AE349C041F11F7859EC9D8405775AD69D795608CC265E0EBC860E61EEA64F0ECCC17CA127D81C57873ED9557E0029B386DCD3C446D60D76C5727E739F4E732068927A09D1A336D6C9E78B06F6B876EBDE3E609B46E446B95B8E6636B2DB7FE6CEB8BB5F6D16A0DBA559DE86EADD76F2E45E3728AF3FA87FC4D3BB7F16C8D25B7665F7399E570E6D896B7C8C91B1BC33EFA2E3CAFFA12CFCBBC0EF7D5DE8CFDC0BA437271B882B1B9DA04AD216DBB6A5BABCF8E76D53FCC7EB423DC086C8067CEEFFA29DA50AC61CE3EC86BE3D88D2BC737EAB8C15E039E8D51B7FE3A329773707EC608321F7C628FD47E082EF4DB373FA61C58DD9267D0DECA8BBA18DC2FD770ED32EE9DB987DFB95FE63D8E77DE06E39C4BB96EFED0CA5E67BD65F1D19CF5CAF7E662C84DF85DB9DDBA3C5DAF73D672996BD0CDDAFFAEFDA4CDA271ADCAD4E69A18B3A6DDB47E4B64AEF185C6754E9CEFD586B37F9A7B5BBF3F3E0CCEC339B986F1B5F4059C164C8111FA0B790477600EA6CFE010D6EF56876CBC983678715EBDDCB9BB6D6EEE3198301685B1A51FD2F54FB41F8225D73DA1AFACB962BCADB6218EB5B6A2E7360E1EDCF3FD318F79CCF61C8E7179566B10CF5AACD6CD43B7F5D9C102F621EE0DBB8BF38871648C4F6290D1619DABC5B87EC5EA00B32683FA3B7859C50696B7D4B7EB73A86B2A1757751BA74C9F6B5DCC3A455DDFB23983F2D3993BE4338B63E5B2BA68E3C7D551C4BAE35BBED3B5EBB4CDA80FB09F3A28B28836F21ADAB0A9F9EDBAA0BC23939883AD594B0C2C6D265F716E60ACB08907EB84DA0E724C398C720B5CCA31C8CD048FC68F280F897DECFAA3FA49E1DFBCB0953876F031A917720CE7B256A37975DA8E18039C9B97396AC6ECB66E903662FB5139487CA3393AB42DB8A76E3AED45FB690B32B79BFB221681B6332E80F6AF4D6DC6B5CCBC3BE7CDFA915A47D3F131EDCD72307308668CE35C3F77B5A6CBC47973A694A3B663D7386C8CB29C46996BAC23EDC0BBF185E2DF1848DBBFF1EDCD2DB73DB83EC7C1498C11D506896CE719AD5B2EA6E817D75E0387F065FD9B9DA35A43ACB13BB31E87F626C79463115E4D4C96EB11716D6B73B91E1CFE19E4B4B29E77E42539F8E08C76E73CE43EBBF61DF70F8761FC80757891B67FE60FDEB906F742DB1B5326B76D3FD53FE3B33BC76A0794BF23B7393F7306D7549FC1DEC8FD701E6AD2711C6D8FCC31AF966DD64FF3BCAD09A3BD41FD4D5B9C73C1519B58513735B762C66AEDE15B1F69E3C21D9FCEDFB69B72BD713CE0192C83696414B24EBCCB5F9A37579F7079CBCCB9759C37AE1F19CC33F2D9B1828FD1BC7C31AE6F1F0ECDF3BB86B232C398C8C6F1AC6A0CD4EF2A4E684B745EF0459CA17E2738131C9AB5ADE051BE88F563CD3B64B0FE5762D99957680762C19903A8CF881CB5661D761BEC2DF07C708D6D923800E204E0F8FAC31CF78D1BA91C695FD686357381E92BE4BA797EE09D7186BCE01DFD595D96F6A79F95E9AD19529B4B635DB5C7D807D5C7A63D7BD6B6530EDA67EAA23397A2312E62DDCFFA48EBDB6C4EF4ACA9587F44E3796827737F1CE3F2389FA9B6C6AE93B8AA0732F146FF80579E91F38203ECD5C4AC587350FF077213DEE91A51F23EB96279A5CF7432EB618873FA9A3829E20A5CA7050C6377D646A0FD93B6E685AD91FB84176097812F20D7A9AF85DD1C6C11134E2CBA32906B817BC6067648EC33D6EEA2EFEC036BE7B576C7F487560FEA5CE618E77E584BE3452F7AD189EBD9A6C879F405E771E4B9F377EBBBD4D632EBD196F7F63EFCBEAA79DCDCE9E2467DD57A5E278373E57965F5E4EACE176DCB19836C1BE82B33269DF6E81A701DB7B5D12B0F660CA37814FBD68A014FAE6B697D4DE40EF2151EA05F5E1DA6350C6AEBEC78AB6EB4AA45CA35392FEB6A3167B0C615F3873E4FE2B5ACE1677BB5660618625CC2D719A3D83BB45D1313435F692F5637E03BBE5DC607F5EBA80F73BFFBDDEF44EE7E75379FA31CB876DBFA6D1A8FE69A4EE668A90F736F3CA76B10B0D634D8C1DF00B6916BC81E6B36CEBA96958F3356B7BCDC18EB5977BCE365D67653A6EBB39BF18AE2DA4DBC3B3788016D2FEAE6AD1DA10FBEF1C71DA7CA68F769ED2BFB5F7C3BCF550F2F1EF5BBDB17AE2DC83C8A2F119B8A39FACCFDC8715EF631EDE19AB43336B276B7C647AFD6F6307787B98FFC3774346A10B9263A5C1CEED6F5CAB896F90AF409B1B9F00FB8816B958371F1837D51FD946BC1877959371D9C5327061B12F9197051AE03DE8C036A1CA932437DA77D50FF00FB70EF8E63B8163827CE132EA6BD08BC2BD3AC03D3F97ACAB0F2D3559D9FC67DEFD5296C1E69D72E3016007C9BFBDCF5A15D4FD1CFE2BDEB3DB7164BD7C992A3D6BED478B5DAD3CD4DA93D46BDC379ACF5559ADF3173C58D5BF21EB5EB8131E439B20E0E4B8D43F5707DC7CD416DBC7C7560EB5FEDF1446B5A998747DC17D78727D3F760001E0B2EF535710DEDF4AE55CA8B7168FD3AF0035FD1CF43FB690731CE80FEC3D68E6E48CD5C7234785EEA055877A7FEEBDA389A1B30E3AE270FD56EA85D9ABC3E7451D70AC3DE439DC7534E3965DBC7785D6DE4C57163BA6CD3DA8A5B47AA6BD11EB5ADD60B9FF5B656EBCCADD69B2B7F6DFC606D7FD5A11B832227D79EDEE7528ECC5AA2ABD89E5947DA712E57814792A7801D00596EBD1F38AFB17B9C573F9A3911ADDB58EEE278DEE3E41E47BB22C3B83E3E71304AFD7E744330CFBC0EF7E0459FE0BB5406B996177106CC05D62B826FE153F5186C18F4A1B8741D0AEA5420CFE1FF605EFB22BAA0B6B7E679B56F5A9365D6012D57334F05EC5A979D7C277C6BDC27F76C9C197A85FD2B8738191DABBA91F7AA9C3B6AED2AAFD1AD6B2CD6EEB2676F711DAEAEDF36F3825A1F65EAA2CD8555763B3E7C5E6347EA879E7132AB7A028D69D7D7CFCBBC097DD6F88038B73675CECB67E7FFAE4BD11834B15E1FDD2A0FD6E391CBBCE0FFF43BF12DC4BA5A2F0EEC224BB097B8BE0F3A1B7A2B6D44BFA06BCA01D8A8E5C24B8E056FD03FE11CA07D9BB5458963D787834D95FDD57FA66E5FBFFC2AF7BC3129B68BB9FDB635BE09EB2619D76CFD01CE0DCF628CAEF26DBA750EAFDDDDFCDDE6574CBCAFD6555FAD73D1BCA2BDF896559DFECAD53E4739C09C23576BAEC8571A9FEBEF72A162BF6B162937C41C31175D5B07B9AA0FC1FB6CCD6EF132EBF0189724E79A79312BBD491F22B666642AFA98FE1430806C675EC12F6FED276C8CF257DA96D8588E358F947909DD12FB9139805C475F1F58665C68A7E7DDBC11FEAB5FB73A559FA9BE91CA723983F381366036C6B4F171E8218C67AEEB9A1DE6B43007A9CB3466A3B14FB3AE5DE54C7586BDADB5028C6D9CF86EED9615EEAB874E3BC8DE9A2A5DCFA479CE3397AE9B75DFAB5F77DDE8C693D65EA00C8033C0AFC82DA3BF69736C5DE40E710FADFBDF3A61AD03D8BCBC59A7665513B9CFCD7EAE3187DD04F946AE9975E4B073734FD65444774436F102C3608879C039089C9A77CF98657FDA9D17DC88EBB2B60BFF734EED4ACC235C87F3B8F64BF9977ED0D6FD53875FD9415AF3DF3872DA055DB435D4D1FB1993C815EE9FB8B2E6AA37DE5A1B9CFA593954F1B3E2B4D306D0B59B8FC2F9DE1A2E33D6656F3D95F2BA951C9F3C70FA72C58DF5C3CACBBB0EE84A9E976F9A1F69AD43FA9CFA56C6EE35B7AEB1BC2B59D65A617292599F66FAAEC4122F3835B883A78369D732874BA033A81B8363F82DF9401C834D51ACB26137777F78091CDFB587AC7F87DCC77E6A1C98B1617CA726813C6DE60C1C1557BDB271F0DDDC01EB17B9EEB9F2141F18CFCAB8844B19CF6DDF343669B56EF1C48F76886967692CCB8A97AF70BE57CB62C62B9677CCF594E55453C6CD3A2CAB79C8315A1B65DBBB799EF525359F83F6E2F98C03A1ADB1AFF18C62BC35347C9F6D5D1FF8F417ED8D6337E7755ED40D0283CCE1F88BF4C522A3F91DDF2758ED3A2FDA2DC02F3C47BFBE35CD1923CC0DC655CA4F3CB638E75AFC4F0E93F5EF66FC96B8117BB34EDC5C57873ED2D7D11A2BB48F357B993B99B7985FD089EC43CE39759F59976ADA012AEB1ADFD438A2E6879EAC3C9F318B532F2D2EE61A1DE5147B32DDB150FBEC4A9F9876D1BD5A76B3F605733FF284BEC787682D296B6FF55EE4E5EAC6E67B29BBBB8E69F3F6DA3F5316713C766ADA943106D6B0DF538F087B9F715D60DF785A7453D75F817FF0D9382D306B2C22E381DFAC29C477B0EF1A5EFAC3AC53ED46DC89BEECDAC2BA4E877C79B5C699B602B95B6DC0FA3B8D4331CF1A1B0CF312E398B5F7687F6392DAF68D53E7B759DB7BC608549ECF35014E06E77BF1B96EE27CDA84267F98F2BB32B3FEB0B90E7139F82ADFC5F9AED79F9CCD78697043FF938369AE9BF5A49ADBD17565E48AC7E17CD65F9AEDA13F8467C1CE62ED65F405EA43E34F017B60D5FC0E65B0F5D4FD2EE76EFC976B06308EC139FFF1BBF9F8C67919A3CBD821B68738B0E27CD56FEAD6AD2FB2F223E9C3776E6E7D91D682C6768F4F0E1B297D6CDCF494137BF2BC35E92AFFAA779E5A79BE975B24EEF5134DBBE1E4D72BBB51657AF59CD5DA8A93174E3BF92AB6A6B6465ECCD3D435E1599943794EED02E681D4965F59DC9CE0C95B1AE3A0CD6635DE5DFF856B607F501EB3AEAEDC052C5AF7CD3C1D70695D50F0CC6FAE91618D4FF3F019278C677C32D86F5CD74E3B2AF3813E58C6183AABBC65AECF2A86CD15300EC975BAE69AF1CA1BD754D467C531FCCE7C465FF0CE7D8377E3A467AC6D7DFBB37FCD1171BE9FF271F2F2D53A452B79BEE2E4E6428B73CFA59C9D35898E1B07735DDDE9479FB5F59A0B65CCF7F4051773F8C4919BCD3FA4DF1ABFABFCD65EA8ECE85A007E57AEE9A798EBEFCE982EDA065B31D7E60526C121B1277017383718B75EBAEB1AC9A9E5DBFA16D5A59B83C131AE218A9F1459CF777E779D18EBA3331FC09768176DD0950BB5EFB94E9A31B1C619367696B63466C41834E7306BEB9A03CD8B5C0FF4107066FDAE6E13E7B5EDB63E9039B9B58FAFF4CF93E1E762BC758AC4BABFADEA9BD75635EB38CFAD7E98D64F6F8EDC9439E58CD545FB5BEB5CB43E9731D4AD0DD09A8E8D39F018E7E1C6CE375ED471D5F95A5944FF7B4FBCAC31871CA616105845DE8A5F6B1B56A69B6BD1CD5C39F3FDF8CDBC5237D733E233761CD7BFC09760DD1EEBED5907CF58D1B92E56E3ED2B8B9A9FA80C283F4586B30F98C6F7456C23F626E3718EC3476B62D43FD57C5663CB56FC054CFB0C5DD745DFFF6A8DF3197BCED63CD5726A6D19C73D4731A62E3239F1AA3E86589FF1D0AB5AEAADD725C7AC3DBCB57A67BDF9B96686EDBEAAF9583DC171648D24E67C70456D7EB80B7645620FE117C62D82596CCD60D13CD1E330BE8773D79CD6EE6E6D4472A4F44780E9EA1D3E7F732926079E7681F2F7D62F96F398436D5C0B6D839E643DF1697F9E76E9627CAEC1BCB2B5743376C271604C6ED720DDF37FCEB8DCF28872D5B9B6D5DE567DDB98F4D6CC3EAA2669FD73CD83A93C9D75BE5A87DB9CE8D61AE83CD978796328E5F38D072E7717E7F5C1EBD3B5A69DB5B5F0C5538B133F21753B91F5C879B0A99D64625CBD52993F71EEE6BE601E0EC3B8C29E43FBA283B67E98EB2D5467D667D4D8EDE24799D61ACFB555D9976C9ECBBED2DE8A7C9F76F26997AB4DAE3A5AF3CA1C8FAB3501CCE732D6A5EB2F5A2F77CFAE683D3AB6E68B779D4DEFE9389CB7BEAA7972E68FCA0767BC56EB4CB6F685BC69E630ADFCA4CDD9735CADD62E9EEB63B4667DCF3FE3CB9C739D0BC40BD7245E11CCA19391BB842F48FF8E3CC5F5CBA73C6F6EFF1ECEBBAFF56E1957D410B3A624F2B535CFCC6FE179E4A18D7FE97CDDF9558C377FDDB854D71A5537E57A605B5E6F7BB6C660EBB5ADD60F9C3A5EEDFE5D5FAE7CDC1829735D8BF3551EF44AAECFBA72737DDB5383F3D6439FB1229DAF8AF369F39BEB845667507F3237B7F589BBE6D7AAFEA3FEE88E3DF97BFD63ADAFEE185066195BCE676AFE606303EBC873E438584467B49E225C431C77DB93E72B5EE3FA43C40E1077C7FD103708F66883D663750C777E9CB5A7A61FD0789FE2BC752CBAEE20E7200699EBA9BF4E7FC394E5B549371EB6EB27D77E31F340D135BB0663794BE5F92A4714BE22EEEBA3AC2F78FA888EE22DAD4337F9F95C87B97949B537F97B7DF1E5149EC39A9ACE1BE596731DCCE655CFDA83CE0F13E7C6BB77CD08DAD71C31F539F80A5C025E2E77B66622B614EB3B769D2F312DCEE5EFC5B9DFFD1F8C5393D4584CFA0EDDD03A616D3BC778D7386E9ECCF4A5958717E7D545DBDE3CBB75D1D94FDD77AE39DAF69C3E97E6D0B4AE9A32D0BA515D97C5DA74CAF7E27C2FD75F5E2E97997E1C6D6DD32E7232FA687D33AB1A743396BDF68DC61735A777C6F9DAEECD5FAFFE396BBB4E3F6F397E6344FD4F2C1B4BAC0D591FA1391FCCADD7BBDEF54EE011DE622D75F3F4C1285CDDFA3253B6F7FB94E5CA7BCEC598E279A87F00C6CD77B0CE52D7E12E0F9C3C62E5B7D4D632E3036C7B650EFBD50EDCF9AFD7986B5B4CDF516B48B71647D718355F08DCAEE4B91CDD38F4DAD127D6C5B96BC1B4C660EB811C87EFD6F333477FD6C59EF69CCA97B99E74FD44B5B3680BAF5DC163E79A02EDD3C626CAAF66DC4BF5D0897363B88DD331DF9D775E5C833C65F3CCB0035ABB54FFA53693CAEFB95596CBDF191FE49E6A17A1BF882704E3F8897C7E6D43DA5395ED95DBABDACEC6E3EA7BB0AD9C13B8AEF92ACA2239A0ED735CBDDEB996FDE4E9739DC5592794CF730DF4B94674D7892ED6D9E435ADFD5CBB8B989FF17BD3462407F4DACDC3EB334FDE326B72351FBD7E256B4B360ED871A21C9A711C9DCBEBC358AD8F5A1D60CA746BA23936678E08FD4DCC30351789F172DD5AD7D1D20FC4BBF516D9AC4F00B717E3FA4A5D4B86F594C07863CA566BBB4EFFC5F4E79AA36B7F36AFD1FE717EB49E79FD095316CC6BCC5CC399276AAC6A63E7A6DFC2BA96D30F64EC8AB8AACD887D5D4FB73C66E65C88F7DA98EAC394A777FD89DACB6BBF338F52BB4DFDEBED9BD927D515ABA3CEDAD293BBB786B4EBB9366EB1B5EB8A93D6F2AE5DBE7AA9FD6A6E626BC03606C2F36167E47E90AFDC2B799C4F7EF293B7FA447074EBD1C2DDF9CEA6EF53FE6D4D43D70923F6951C0C6B6F759B71508D055CC50B2A9F5BC7A31C4FDB6DED63731D86598FA1FEB955DD958977B1306371C1AD39BDCD079D6B11C937B439B63E57738BC478D77151276DFC7DED4F626B55D762555BA8B1FE8E89C659556E369EB6F38179C9F68BB92A5DB7497ED5DA02F6A93C457DD85A60AB18B472CB199B517BEE8CE79E73036D6D1D41EE95B6A5DDC927BECF7DEEB3C5E6107785AF1C9B8C312BBC836FE272895327DF887A17E470588FC1353D7BEDC903A7DFADF6BD197FBEAA0DD5BE98B9CAC5F8ECB7DAA0566B6D15F3B5ABCD358AC0B4BCC835CFE42CCA73D702D0072CD6C1826BD475FD73F3A1B14FADFCFE734CCE1CE5955FB3FE8395DD70FA6D9A43518E5DEE5E99655ED81E2FEADA8D8DBB732E5EAD3BD2B137F3D4AB0B5B3F78AEC3D167B706A45C54BF2163943647CE77232E8558635FF481EB60987307F777CDE9E3D6296CACD16A6B1C66F1DEB8DC95CEB2CA579FE3BD76B4FA5C6BA7EF7CDC1825F5D0DAD394EFE607C9BDC5F55CAFA8EB9C2BFF95E3601C4E69DEFFB4EBCCBA61ABF52EBACDD8F1BD7CE2E68D366E74C6BFCFB5EC5A2B4D1D74C638CF9C8BC62274BFDA19D459A72F60D65AAC7FAFB5667C3E6BEFCF5AA9CC25F854D8C06D6BAFF619AD9DCBEFCE69E6A4719FB36D67BD93BD1C99D67BEA7A51339E67E696CCFC9F29A33AE7352E6F2FB7405C3706C1635D8FA8B5C957EB9AF39B7AE8F4F9CF98AEAEC965AE3F9B36CC3D3D7472AEC61656DF2BA79EEB90CE35F6BAB6F9E412E5F162B7EB7931975BEF561F516B814D7E5E1B4CB94BFB74EACC1DD37B7A86FDC8D89167ADEA7DD7465A9B446D48C6BE6A37B4CEB0717433B77C85F3999F3BB94B713E6B7D1EB5A9CBCCF3B71ECCC4CDB4733A4ECA6D8CD1EABAE61ECF67302BEF00C7F5933A16D8A7DCDC9A2EE52E6ECA90192B26F66B539FFEDAC6B616F7738D8EEA778DBD685CCA6CC7F2E0FAA4E4DDC6541B8352DDB07AE79CAFDBEEB5E337BEAB583E0AE7D377DBBA4CDA889C3FEA87A9EEAD5FDD3577C550B973C75F316EBCE1CC1BD95BD778C6AEA997AE64787397DB7E7B735F6579FDB3F6456D95AE63212EC5B1F803F7C68E8359D74ED51E531F916365A58316E7729F19EBAE1DA6319DB54F388FAA17DA6EAD313863761AAFAEEE86FC12ABC6A1586FD73A98936B6AEF653FF1509B7C715E2E3EFDDEFE563CD6E6D01A3B2BBB919F95058E5DC7AFF5B566DE527D33E6AA38D7D09EDC377531EA3BDF5B7376CE4D47D55399F66BE58D7D3ADBA736DAF6E5E4E7B50537DEDDBC8EDA965BE74C596E9C16EFFC663E50F9395B6301CC813E593D544EE47A3DE551B6E9AAAEF2D43956B55F661DA019A72E165AFB5C6E620CE81C23AE47252F6EEE84FB8BA1AE3BD358DE69536B7CC6AA6E6E75E6CE09D6A16F4DB362738EA7D51AD9D5CB677E797346F66AB4AF7C2FD58B660EC4D4B33B26E69ACE2B7FF6E425B5FF1A6328669AA351FDDD9A95CAE9DAC067AD2DD70F55963B07F05F6DEC33AFA85867F31AF2A3C6E6CFBA2E5D77CDE366ADB0C9E5A72DB5FDAA5C2B16F563B83EED5C4FD779C018D48973755575CCA3EA2ACD3A0CABBA69CE3D5D7BA4F69772D2559EE9ACABD1F892EA119D7B7A6FABDA4FDD56FAE9AC9FB6B21588DB396E67BDFED6355ACDED8E81E62F2B9FAD6BE7BC50BB5DFD4273BDE7EA96CAFCC6E11E85F3C9CFC5B9E79EEBEDBAF6D72ACFB96B68342764E6F7EFF99EAA93CD9AA3C5945CAF73F0AC37557B6EE7DFEA935DCFA271B7E5E595C1735E6EDDB4EA6FE6F2747CD7C750BE3463801C9BE2BE6B974DAE7C543DCA552DE5CA9D95DD71EAD2AB36AB7D585CB6D66EEF43D9A74C164BDA8E1A2738EBB4981F24963D87B85496EBFF545ECB6B56EB5A949F8B73CFE5BDA9CB5A77D6B15A6E539DB3752057B520678DA5D6162987A8CFAD6B6A94DFAF6A3EADF030D7F39BF962CDA36C1ECDE4B9E54AE5ECC5F9B4A3CDD8B7BD5A66D3FE532E539EB3578BC17B59E50B55D6AC72DAE739CA27AA2B766DB27292E99BEEFA9E13E7BD66F33DC489BC65AE875BBCFB5D5B62713EEB58ECE1DCB1326365F405CABDCCF1703C8BA33D9CB7467E73B7CDCD99B5CE6BEBAABE37EBEE4CFE3A6D0595C7624EBF6E6BE297F31C85F372B6AE17A6AC6E7DC1550CD05EFDB269039C71947B7536A66D65C693CC7AE4C7E1BCB6B2393FC8B3C5B2CF3AD7462C67D1AEE1F153A79DB9CFAB7CFFD60A6D7CA2B806C7BCC36B566BE3AE70EE38B43EDCEA9994E9AB3CEC99E734657AC7A73CA7B627F3C0F58DCD5CBAD6AAAC3FCE5AFA2B5B4A7D7EEAABF593D79F741C6F996B9F36C78ADF8D55D51FD03A29CD3F9CF8AFBF651557B0CA89983AE7F4C9CDBA12B30ED48AB794CFB70E837DB8AAE1503D6095A76F7F193736758CC67114E7E5CD7274B986BFB7BEBF9F5BCB62D64217E7C6FBBA7E999CD4EB96635777989CAA734F31DFB1E93D9B8365FF39B6BA36FC8C83686C9EEBCBE36337C6AEB57A665CC5CCBBEBEFC7E9A1E5E9F65FF3FD3A47CC3A99AD39DC31589B486D502B9C97FF4C9FD1D43957F101C7E9A1E528735D699FAD35CBBBCEA76BAFCEDA2BCDDFAF0D7AF28072EF72F3EAA1BC2B1FC10EBF750D22E3B48AF73D796E4DDDAE2F3173501DEBCD5DF25E8FC27CEF9D8DEFC539B8A83CB72D2B176CF3E2DCF5B95CDBAF6DE8FEAE5DDE9C83E64D597BE828BB62C78E6DD1DA35B3F6EFACA5DF3592E6786B8CCD8A7395ABCFDA32F5CFACF2CF1A9F73945DB1BEF0F24CDBB073AFF562E4E97E9F75112BEFF6D6423786AB759DBBB5E6B3EBBB6A436F7E73EBB54C9C1BE7A2BDC5F84ED7282DC7E8BC2466BDEEAA0651E314D4233A56D505E4F9CE63EA07CEB55DEBA5FAB9FB687F549E7BDD1EE37A16732DCBEAB6D31F5E3BC3E4C35DB7D0D83AAE27869463F2A2B92696B90DFA45BDF759E3B7BFD5B75019DE713DD7E328CF98B169E507EA61932B579F9597B5E6486D35E25859DE78968E9DEA773DA6F612E359BA8963EB6BAD74CDAE43D45A455DB3A87C41F9D73CBC8EEDEA0893D3CF3A1C9397F773715E3DA7DC4499DEF3D5AE2FDE66CD8619A330FD30332669B5CE48ED3ED5436BABD1D6D4DAEEF6717D9DAB3A708D2D9BEBECD52ED35C88B916ED8C1F9CEB70F97CABBACB5D63F9B86DDA1E664C536398957D8D092C1F6F1E857EFAD5BACEB5135656CF5CFEE278E2DCAD389F76F172246D44B651FF676B7BAC6C2E536795D3744EB42D1A0B6FFDA55E536EDF7674DCF4BAF5C7159BB56977AD8D554D3DB1D339469ED098B7C67A89BBE6CA9797CCFCCC195FBE5A6F7BEAA72B7D738F9BFB8CC7AD1931F975ED7B8D019931DB8DB959F9C7C57CE3B65AC3D6D89655ADC455EDA1C9C55B576EAEBFD5B5E7B49F970B354E86EF8D6B9F391CAD01C6563DB3D8A8AF49B96E1B761DCCF689DCC763BC0F6D40B5E52847A65C69FE61ED89D66493B3D5C63E71C2BD3AFF4FBD418CCFF533BA66D3ACF7D09A4E8DD52DCE6B9759E5184EBBE0E4E68DAF3E0AE37B756A6BBB5EAD1B547FC1F4C5AE6A80DB9FE0430C8BAD9927377399274F993C660FE78DC92DCECDDF90AF1833534E3DEB525B17CCFBD40E640C8172B53103CD0B51CFAD7DDDF6F4F7CE797245CFD5B966EA5162BB3268AE0155DE35634CBB869F32DD31A77EA5DD70FA7E5AC361EAB9FEAFCC37E6B235DC3ADF4C7D61DA16F7EC86D397B3C75BE65A40C5B97DD975B28AF35903799557D4F9DE585AE3692B33BB3E45717D6A712EAE5D4FD1AD7DEAF3D4263F715E9EAC9F4C792BDE8D49E0F7C6F136AEA15C7D658FACFC680C656DBDD336D0FAEAAB3532668DE219E35AFBB1CF645E57FDC2D569BA4E46FD575D6F72E63495BFCC7A62CD07D75737EB3A4D1BFA517AE8DEBA28E5DEFD7DFA23DB3F2BFEDD9CCAE94F6DBD50CED9BC4F64A87271C66ED59E726A784B314E6D3EB6AE1FDA4D3E5C792E9FAE9EB9E7C3AA8D4579D998AE59E76FF2C7DA55A6BE34D710281F925BCA99662D81B98EA25C7AE6F0D6C737EBB5DADF8D7F9A75F51B6F6EEDC7FAA29A67316BE34FBBFB9EBC2E4F6F5BAC307D1C67996B60ADEAEC4F1B4075CFDAD25776FDAEE15C1EAE9C3EAE2EC5717AE8C479314E3EA23897DF361EC57AD88D0F76CC360EA03694DACD7BBECAFEA99FCC79AFF2D4369C72BEE713CF337F74EA65E54D9EA7EBBA4FD9D7CDF9B5369FDAC35B77AAB54A5B9B738575794C6320A62FB7EB4FECE9A153879EF27CCF3E503BF08AD3D4E7D3BAFCADBBD2DA9C2B9CEB87911F8827E749EB07EDE9A1C61D1E6557DCC3B9F9B862FEBF0192A6C3E9]
}
Add(Edit,14508946,70,49)
{
Left=220
Top=385
Width=350
Height=40
Font=[Courier New,36,1,0,204]
WinStyle=2
Text=""
Alignment=2
Password=0
Point(doSetFocus)
link(onEnter,7234742:doHashsum,[])
}
Add(Label,16710774,70,98)
{
Left=225
Top=345
Width=370
Height=37
Color=-16777211
Font=[Courier New,18,1,0,204]
Caption="Введіть пароль доступу."
Alignment=2
}
END_SDK
Add(HubEx,9465507,308,133)
{
Angle=2
link(onEvent,2037984:doEnum,[(198,139)(198,265)])
}
Add(StrList,15214467,210,210)
{
Strings=#1:0|1:8|2:10|2:11|2:12|
}
Add(ArrayEnum,2037984,210,259)
{
link(onItem,8114414:doVisiblIdx,[])
link(Array,15214467:Array,[(216,251)(230,251)])
}


Редактировалось 1 раз(а), последний 2018-12-02 07:33:25
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 56
Рейтинг: 2
#5: 2018-12-02 08:15:04 ЛС | профиль | цитата
Tad писал(а):
Пароль 123456

Здравствуйте Tad. А разве не получиться, получить доступ без пароля? У меня тут другая система... Есть файл лицензии. При запуске программы, проверяется его наличие и содержание. Если он есть и всё в порядке, то программа "показывает" себя. Если нет, то программа выводит сообщение об ошибке и закрывается. Насколько я знаю, с помощью специальных программ можно поставить на паузу выполнение программы. Программа запускается, хочет проверить файл лицензии, а её останавливают. Далее делают видимым окно, элементы и всё. Лицензия не нужна. Что нужно сделать, чтобы такого не произошло?

Редактировалось 4 раз(а), последний 2018-12-02 08:18:53
карма: 2
На этом форуме, самые умные и добрые люди, всегда помогут! СПАСИБО!
0
Ответов: 16884
Рейтинг: 1239
#6: 2018-12-02 08:21:55 ЛС | профиль | цитата
NUB, нет программ, которые нельзя взломать.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1342
Рейтинг: 31
#7: 2018-12-02 16:03:42 ЛС | профиль | цитата
NUB писал(а):
можно ли это всё активировать из других программ?

если деактивировать таким методом, вполне реально, нужно дополнительно много чего в защите предпринимать
карма: 2

0
Ответов: 537
Рейтинг: 14
#8: 2018-12-02 16:50:34 ЛС | профиль | цитата
Простой способ

Add(MainForm,2953706,308,105)
{
Visible=1
Point(Handle)
}
Add(ChildForm,13168668,70,161)
{
link(onEvent1,392259:doEvent1,[])
}
BEGIN_SDK
Add(EditMulti,5998159,21,21)
{
EventCount=1
}
Add(MainForm,16351368,35,105)
{
Left=35
Top=105
Height=119
}
Add(Edit,8498241,147,35)
{
Left=20
Top=50
Width=145
Text="123"
link(onEnter,15872079:doCompare,[])
}
Add(If_else,15872079,203,42)
{
Op2=Integer(123)
link(onTrue,8855582:doEvent1,[])
}
Add(Label,7393218,56,35)
{
Left=20
Top=15
Width=170
Height=17
Caption="Введите пароль и нажмите Enter"
}
Add(Hub,8855582,252,42)
{
link(onEvent1,5998159:onEvent1,[(294,48)(294,27)])
link(onEvent2,16351368:doClose,[(278,55)(278,93)(23,93)(23,132)])
}
END_SDK
Add(WinTools,13127594,308,154)
{
link(Handle,2953706:Handle,[])
}
Add(Timer,10445373,154,154)
{
Interval=10
link(onTimer,15031624:doData,[])
}
Add(Hub,4572992,280,154)
{
InCount=2
OutCount=1
link(onEvent1,13127594:doVisible,[])
}
Add(DoData,1538304,154,196)
{
Data=Integer(1)
link(onEventData,4572992:doEvent2,[(263,202)(263,167)])
}
Add(DoData,15031624,203,154)
{
Data=Integer(0)
link(onEventData,4572992:doEvent1,[])
}
Add(Hub,392259,119,161)
{
link(onEvent1,10445373:doStop,[])
link(onEvent2,1538304:doData,[(143,174)(143,202)])
}
карма: 4

0
Ответов: 56
Рейтинг: 2
#9: 2018-12-03 09:25:49 ЛС | профиль | цитата
Sersey писал(а):
Простой способ


NUB писал(а):
А разве не получиться, получить доступ без пароля? У меня тут другая система... Есть файл лицензии. При запуске программы, проверяется его наличие и содержание. Если он есть и всё в порядке, то программа "показывает" себя. Если нет, то программа выводит сообщение об ошибке и закрывается. Насколько я знаю, с помощью специальных программ можно поставить на паузу выполнение программы. Программа запускается, хочет проверить файл лицензии, а её останавливают. Далее делают видимым окно, элементы и всё. Лицензия не нужна. Что нужно сделать, чтобы такого не произошло?


Можно легко получить доступ к главному окну программы. Для этого есть другие программы...
.
http://www.manhunter.ru/underground/1035_programmi_dlya_raboti_s_oknami_prilozheniy.html
карма: 2
На этом форуме, самые умные и добрые люди, всегда помогут! СПАСИБО!
0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)