Parsing well formed xml tags is simple, there are many libraries in java that can handle this case very well. So but what to do in case of not well formed tags? Many parser break parsing the xml file, so this parser was designed to ignore it and to continue parsing. This parser takes use of the indexOf() String method to get the content beween 2 tags. The parser ignores code with not well formed tags (means no starttag, missing endtag and code without tags).
To see how it behaves exactly in case of not well formed tags see the follwing test files:
---
Main.java is the execution class. This class takes advantage of the ReadXml class which is responsible for reading files into a String. This String will be parsed in the XmlParser class.
Please note: All test results comming from XmlParser_2.java class because XmlParser.java was only designed for the basis of processing Xml tags.
You can set following test parameters in the Main class:
This sessions are designed to read first the "v" tags and then the containing "id" and "num" tags
Overview| File | Problem | Comments |
| xmltest_0.txt | everything ok wellformed xml | XmlParser and XmlParser2 works fine |
| xmltest_1.txt | endelement "v" of first element is missing | only XmlParser2 give back right result, introduction of XmlParser 2 |
| xmltest_2.txt | second endelement "id" of second element "v" is missing | XmlParser2 give back right (expected) result |
| xmltest_3.txt | endelement "v" of first element is malformed | XmlParser2 give back right (expected) result |
| xmltest_4.txt | endelement "v" of last element is missing | XmlParser2 give back right (expected) result |
| xmltest_5.txt | endelement "v" of last element is malformed | XmlParser2 give back right (expected) result |
| xmltest_6.txt | in the first "v" there is a malformed "b" tag | XmlParser2 give back right (expected) result |
<v><id>id1_v1</id><num>num1_v1</num></v><v><id>id1_v2</id><num>num1_v2</num><id>id2_v2</id><num>num2_v2</num></v>
v 1:
id1_v1 num1_v1
------
v 2:
id1_v2 num1_v2
id2_v2 num2_v2
------
Result
The return is as expected, because the xml file (or .txt) file is wellformed.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Testfile xmltest_1.txt:<v><id>id1_v1</id><num>num1_v2</num><v><id>id1_v2</id><num>num1_v2</num></v>
v 1:
id1_v2 num1_v2
------
Result
This parser only returns the second "v" tag. This is due to the fact that parser ignores all malformed xml and only returns wellformed xml tags. The first parser (see XmlParser.java) only processes specified tags without handling malformed tags. So XmlParser returns an "<id>id1_v1</id><num>num1_v2</num><v><id>id1_v2</id><num>num1_v2</num>" string that contains all tags. To solve this problem the parser was redesigned and a check was added if the resulting string between two elements contains a startelement. If so, the string before startelement will be cut and the remaining string will be also checked and if this one contains no startelement the content of tag will be returned -> the result can be seen in XmlParser_2.java
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Testfile xmltest_2.txt:<v><id>id1_v1</id><num>num1_v1</num></v> <v><id>id1_v2</id><num>num1_v2</num><id>id2_v2<num>num2_v2</num></v>
v 1:
id1_v1 num1_v1
------
v 2:
id1_v2 num1_v2
------
Result
second "id" from second "v" tag is missing. So parser ignores this pair ("id" and "num") element but returns only first "id" "num" pair from second "v" tag.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
<v><id>id1_v1</id><num>num1_v2</num></v<v><id>id1_v2</id><num>num1_v2</num></v>
v 1:
id1_v2 num1_v2
------
Result
First endelement from "v" tag is malformed. So Parser ignores first "v" tag and returns only "id" and "num" from second tag
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Testfile xmltest_4.txt:<v><id>id1_v1</id><num>num1_v1</num></v><v><id>id1_v2</id><num>num1_v2</num><id>id2_v2<id><num>num2_v2</num>
v 1:
id1_v1 num1_v1
------
Result
Endelement from second "v" tag is missing. So Parser ignores this second "v" tag and returns only "id" and "num" form first tag
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Testfile xmltest_5.txt:<v><id>id1_v1</id><num>num1_v1</num></v><v><id>id1_v2</id><num>num1_v2</num><id>id2_v2<id><num>num2_v2</num>v>
v 1:
id1_v1 num1_v1
------
Result
Endelement from second "v" tag is malformed, so Parser ignores the second "v" tag and returns only "id" and "num" from first tag
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Testfile xmltest_6.txt:<v><id>id1_v1</id><num>num1_v1</num><b></v>
<v><id>id1_v2</id><num>num1_v2</num></v>
<v><id>id1_v3</id><num>num1_v3</num><id>id2_v3</id><num>num2_v3</num></v>
v 1:
id1_v1 num1_v1
------
v 2:
id1_v2 num1_v2
------
v 3:
id1_v3 num1_v3
id2_v3 num2_v3
------
Result
There is a malformed "b" tag in the first "v" element. Parser ignores this and give all other "v" tags back.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
This sessions are designed to read only the "v" tags. This session should only make sure that parser really only process <v></v> tags.
Overview| File | Problem | Comments |
| xmltest_7.txt | much malformed tags | only tested with XmlParser2, right (expected) result |
| xmltest_8.txt | 1 malformed, 1 wellformed tag | only tested with XmlParser2, right (expected) result |
<v>1<v>2</v></v></v><v3</v><v>4</v>
element 0: 2
element 1: 4
Result
The return is as expected, because '2' and only '4' are within wellformed tags
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Testfile xmltest_8.txt:<v>1<v>2</v>
element 0: 2
Result
The return is as expected, because '2' is wellformed. "v" 1... missing endtag.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
XmlParser_2 is "as it is" built-in in the main program.
As we have seen, normal XmlParser.java works well if only wellformed tags but doesn't ignore malformed tag. In an extrem case the parser breaks with an exception (p.ex. an NullPointerException). So a new parser XmlParser_2.java was designed that checks for wellformed tags and ignores malformed tags.
This new parser checks if an endelement comes before startelement or if no startelement exists. If so String between them will be reduced to the end of endelement and checked again. Last it will be checked if substring between start and endelement contains a start element, if not substring will be returned.
As a result XmlParser_2.java was set as the Xml Parser in the main program!
This unit test was designed to check the right function of the RSA library.
The class will create a random key with a given length and also a random string with a given length. Then the random string will be encoded and decoded. After that a hash value from the decoded string will be generated, signed with the private key and checked with the public key. At the end a counter tells you the result.
----------------------------------
Main.java is the execution class. It takes use of the Counter class (counter creation), Hash class (hash testing), RandomString class (creation of random strings) and the both above named classes RSAToString and RSA that are providing the basis for en/decryption. RsaException captures the errors.
Main class provides and multible test environment, you can set the following test parameters:
In order to provide a robust and stable decryption following testsessions were done:
| Test | Description | Result |
| 1. | a fixed key length (256) and a random generation of strings with a max length of 10000 (string was started with a length of one and increased by one with every loop) -> 10000 runs. Duration: about 4 hours with a 3 Ghz Intel Processor |
successful |
| 2. | a variable key length from 256 to 1024 and a random generation of strings with a max length of 10000 (string was started with a length of one and increased by one with every loop). -> 7.860.000 runs. Duration more than 3 days Please note: with every inning the string was newly generated. |
successful |
All these tests were successful so that no errors had been found.
| Test | Description | Result |
| 1. | a varibale key length 129 to 258 (increased by 1) and a random generation of strings with a length from 1000 to 10000. | successful |
| 2. | a fixed key length 1024 and a random generation of strings with a length from 1000 to 10000 (step length 1000). | successful |
| 3. | a fixed key length 256 and a random generation of strings with a length from 100 to 1000 (step length 100) |
successful |
All these tests were successful so that no errors had been found.
Example Output of Testsession 2 ; 3. Test: (Hint: too long strings are cut for presentation in order to provide better clearness)
keylength: 256
---------------------------
Elemente für Verschlüsselung
D: 98670406992689631320553833503706081536127794807237169320619185385238908742629
E: 112966604373134142977470008321430480117526588590048820564389031886697041022829
N: 138319237392613818025753705251858914572897368444022171388664786973234933790837
---------------------------
---------------------------
Elemente für Hashes
D: 89008886438983599397720372255770121689326406161274423362630088830541753837721
E: 66859715779820526643411822800065226008865807610205883429851617360991290953601
N: 209303427781585764802547163177467594805107485534859720131987793993941480690319
---------------------------
Teststring with length of 1: Ë
encrypt: 0040a92e92c7dd553ee24fb079b067e4f87b55afae2d9ce4d25bd0ca3309bae03e14
Decrypt with length of 1: Ë
Teststring_Hash: 12BDD00FD4038756CBCF8ECDAD1B0CD862603CD8
signature: 004015d0d18c508a926978ae80c3a5a48f4358143027be38ca62498fc3101ea58b44004031a9bdbe26eb5f6eadc54f1ae04dc25e6158b2ff3ae9d949bcadb36ac464021a00407cf16606b91a32fd04a79e0091fef3668bc84525d7130d6f55788072f161a767
Checksign: 12BDD00FD4038756CBCF8ECDAD1B0CD862603CD8
Teststring with length of 101: Ö8¡nP$d{7÷âÀ«ZýAò¨Ñ$?î8£S2õþøb³?Õ%ÿ?±º§¹*˳ß?8Y?FÞõ$sÆh8Å1θZ`?D«©>¹Á"@ØÖRrúc.èê/q?hmI~¬ÝiNADÜ?2Ñc
encrypt: 00405748b5161c7c82a97a7a940ade4cb7646af12a6bcaacbc474c126b050b36d93d0040f36ab85b524fed86a5bc425ee21422a86a11688a46f7272bb71668b4deeb134800407082bf46b23b6e3026ee9a8fc176dc4c7dc42ed359bdbec971c0f9e537b97e6700405082c104c451de4685a64187550e1f4c88220646ec6418b4df6d897884f9fb5700406cda7e8669aea5113bab34685a2380143c77d6fce8c447377145e3642d641d5200407ee435baf8ca15fbe025034f098c91c055a0942317815f20a7c9eac35b26edac004111d75cf5bc3141c8c690bc1f50803874763b1dbaf27673369299000da01ecbf89
Decrypt with length of 101: Ö8¡nP$d{7÷âÀ«ZýAò¨Ñ$?î8£S2õþøb³?Õ%ÿ?±º§¹*˳ß?8Y?FÞõ$sÆh8Å1θZ`?D«©>¹Á"@ØÖRrúc.èê/q?hmI~¬ÝiNADÜ?2Ñc
Teststring_Hash: F79966AD3D338CBBFC23D3B98024E2CA3E8F595A
signature: 0040dce71d5292fd0e8c7db714fdb182bc9a0b37866b26f8a0d2e5f511a4ce83792e004110a5ddcb7dfe2800fcadea9732ee305382823f42fb6e33718081fc5189dd010fa003fda9f630503581d19f774a468f50c541f4b0cfa53c748dd0c7c4e052497c585e
Checksign: F79966AD3D338CBBFC23D3B98024E2CA3E8F595A
Teststring with length of 201: ìá?ÅRÈë°{Ö£AJRËJ°Ø/Æå¨&FÂÔhq`C9??hì?ªÍ3áÓ[°-°ýìó½§K1û9ÚÿP?/G@ÁÍsýDí¯?K?rjê³?èó¤w®ªctU"âÍâÔ?O?N+¯[ä¹ÜÐê>÷_ ?6`à??þ???ÀÚUy\TÚe%t?çÄÂÂý9åfÝ1!Õåk¨3½?¤à6KX??±Í¶êýÀYó²ÌgC¹?<?¶?Üsÿ!²P?\¨9ì??µñ¶¼àqÖ!e=^~ûVà
encrypt: 0040769e76fda95bc1c4d3dc4941421f94b8e5a2dc352e3d59d271c1dd81c4eb923e004110a02038c072e94e67a1a6699d625c721fd1afa9176de10a4c8a00c4b4e29bf710040f1f24d19c9f74e0b9071775c879b13fa4e80de13519e3663eb739ac82d530a7c0040fce9ac8c0ff221664d709e4360d4355ad7bb8a32ec8ca8c07139a7b05575ad180040c08b8013964087c91a0a888e76abd451f6888e42f846b116ba63e60db8088831004074425f44b4e64b4687d9b5787b4efe571c8da59fa67ff13d652daf3c1879daf7004110e4c878ab6422e90b0aba60e17f7cee992d2ccdc2ef97a7f160409c1dc59855400406bde2dbcfd4b76dfbbe246a64c328b0a71b8e9a0c880237e6d23912acd4280e900408d9d1b008bc64792c1e3e776dd33dc916e264227c3e67aab7c087b9e86a564b70040da3faaef6ede9da65bf1d3f70fd963e935a0857e4ab9af29a280e19e6cb1fd7000405c9d6176523861b5855649a6396b9099c41f2fe681263632e1375867d954c7ae004096746d4b565d55d6c7178e63690347a0e49767691fa76d31607e55608d5fd646003fe621250d796171740660a17d842ac331ed86aaef9290e04e3e189ac81d31780
Decrypt with length of 201: ìá?ÅRÈë°{Ö£AJRËJ°Ø/Æå¨&FÂÔhq`C9??hì?ªÍ3áÓ[°-°ýìó½§K1û9ÚÿP?/G@ÁÍsýDí¯?K?rjê³?èó¤w®ªctU"âÍâÔ?O?N+¯[ä¹ÜÐê>÷_ ?6`à??þ???ÀÚUy\TÚe%t?çÄÂÂý9åfÝ1!Õåk¨3½?¤à6KX??±Í¶êýÀYó²ÌgC¹?<?¶?Üsÿ!²P?\¨9ì??µñ¶¼àqÖ!e=^~ûVà
Teststring_Hash: 4F55BEE306FA181576B9F763E750DC0038D04282
signature: 0040df27999b5129de61731de94d3e3a0dc6c56327e2824577eba178a729059eb6c300403fd3e0e23a5da3b50da52195437513a48a646f0c85a6e341520816d8ad6e5755004113345ae2bd7c62ce81de0ec9d058309b94ce44edd2ec8d4d46519bac2c3867897
Checksign: 4F55BEE306FA181576B9F763E750DC0038D04282
Teststring with length of 301: Ľ¸Æ7y¸ÚârÎJZ¿3ÊFå?å7Ôþ?JiÞf6[?n%Õ><ë?ȳ?M$̺??#µsÙí@6÷ßsf$$öx¢?h+<j÷é?{=âöPÒø»¦ã*è1Êý$e?0¯¿Ï??_Ô?ú#¢²[¶^¡¨°n3ýÌSL>F©J¡DÙö(?fK$W£¨n#ê«?»?ÒSµ?õ'ò7>?Øoo_¨_(7>ÉM8é%5?o=xôçUpº?Cu;n¿L{¸Ý?3`TÜäPãé9oD?1CÕkïòNgê?Ò?£?çÁçÐõË8ùª>¢Í?®NÁlGô05/[QdÌ»?xyo?ý?¿?ìuÈ¿)Ù'uò?ð¯Ð¡?? ?Dø\??'A?£÷»Ê»ª¤ì_ÇôÖDÂ-OK?2^G?Z1?ÐÙ?¹
encrypt: 00409a8f64bc35104b20060cb69158511d29f46f906e5e7bdf1467843d3499806f200040b0e1836e5e50fa70be026191db8aa565f9d1020c567476e77a2c79108a428d20003fb98c4c5606ddac9079c4bedd8279cb5a0fe28f89a707a06e966e79d203273c800403c4a2c8762845d37a4998d29dba5e2fbf740014bb46fae35aad6a6cd539197bc00402300a0ce0bc4d6dfd84ba27fb68456136e5a415c7808f550f061437675c6bcbf0040b4151b292c74c5457e6ca3a844d1d4dfe5afce79d5f877fed0955dd906e30eb60040113a348fc34c04fcc3ac6540a7be2663440682eeebcdf8240466bbf2503b439e004111b94f245f87f197cf61d6bd3c822d47d551fb1545dc29e06f6c16e7b3f19d2f70040ab0d932ed0e21899c841452f489b6c4c17487791df6cb3196741c7b3f087171300409bebae6bdddf87c6286702c1a7464d71fb2b2478e32ee4035368caa6a3110169004052e14f82ff80e24884cb98073ccc3b63dc149973bd60cd0788df9fc03e02ee7d0040e93ac582bde571e7397d0650a31cffa9951ec83f8891a867f3fa8d970424f42300402fe1342e888e54c9ce1663a8dd2f5ee71b29d66968e486e7bd796cd1770b850d00406409d87f1c98db98d49ecb3e89913a1c5e73c3dc8b6d8055ef76e2e29b950c070040b6291abcf30e3173f741cf996b63d7e592d70005a22317c9bbcce571d6a05a3a0041121c9eba8ac295b1d3c26b62d1972769461b53af4f65a512e14988b8bbcdb63320040a17032da3b7a1a62a1424c4d60b537b8db2495af89daaacefecbb0bc900f0f2d004050e2a22a39461458b8e84b60ef5fa761a1fd9919df8429060a8f939853875468004024b07126bbb7530ad2ff15a4f8861c08265e3d2ea47d063f015d524ee2cfb4d5
Decrypt with length of 301: Ľ¸Æ7y¸ÚârÎJZ¿3ÊFå?å7Ôþ?JiÞf6[?n%Õ><ë?ȳ?M$̺??#µsÙí@6÷ßsf$$öx¢?h+<j÷é?{=âöPÒø»¦ã*è1Êý$e?0¯¿Ï??_Ô?ú#¢²[¶^¡¨°n3ýÌSL>F©J¡DÙö(?fK$W£¨n#ê«?»?ÒSµ?õ'ò7>?Øoo_¨_(7>ÉM8é%5?o=xôçUpº?Cu;n¿L{¸Ý?3`TÜäPãé9oD?1CÕkïòNgê?Ò?£?çÁçÐõË8ùª>¢Í?®NÁlGô05/[QdÌ»?xyo?ý?¿?ìuÈ¿)Ù'uò?ð¯Ð¡?? ?Dø\??'A?£÷»Ê»ª¤ì_ÇôÖDÂ-OK?2^G?Z1?ÐÙ?¹
Teststring_Hash: 751B00C57471F31A6A266B6DA7995D707D4565A4
signature: 00406e3503ddac0b7c7c1cde8ea0893b75da271abb3525c02aef3ba94cac3c3afbca0041132c9dff326b1f2b6cae9c7a3c5cc98a50e0469d5d617e7fcc03bc53a2f4d13050041123fa120819a6f90200066ab324abc67841f1b07687f156c828063851cad51bf2
Checksign: 751B00C57471F31A6A266B6DA7995D707D4565A4
Teststring with length of 401: g?0óy<?¹â¸¶?¢ô|?8??ö>¿0±×?CÁ¨'¬§zÑ'®%µîA³åÚvÌ]Îh_K?¿èfúã+C5ß?R?NÜØÌõ*3?½SO£^97z?ÀúcS??ß????4?e}mø²p¶RW<Û¡qw_ÃôȸIµ7èÝ'±h¿Vmï=£??Éݸ?»?NØ`M9F¦-iä±]ÎvAe6Íà?2kLÜ@lÞ©?_?"0oTñbØ^½ØêéüÏsHH?Ó$¼ô?fN´??9^ø°³ºû¿wØAùØQ:4x9¼ð?KLfEÊðe¡?+$ü"¾UïÍ4:,Qñ·dan©=ä¡?~abC0F1û?a©«x§ÛÅ:Üø»G?U2?y??bÏyÒ©Å¿?g,Lü¦ú`©\?z4î/׺;[B?ü????SÝãeéþå?p9?Mm<Þ»?sHxM?ö"ºÊ7?^?v?Ä.!ÕÙÃIïëú[Ã\ÿû±íc2°·~?0³p?vØ®ZÄ=Ò0?N®ò?¦ø\?°?CD/Ñ7?s??|?
encrypt: 00402cefe0611b21041355597835b215fdbc55ab7c4fbeb6dcff5f3136d5e1bcce15004111c78abead96071af8bbadefd9449463a07edbce134e066d74cbc6626450a44b20040569e74fe0b658ea4f7a3cac37f608ecbd613f01ffc2814e6812366208d5d1171004051787c53d501b65ff78a1159e04195a752f53c1b940d06272b857b85496679560040ff465d58ce2a96b6878bf67b267e36833744d1c54accb94d24dfbf0a93ccbb150040920ec6ea73e6506c5d0272e2754a008c6ab5530f3ddddaf13ae2f188f0bd36ef00403b45cab113c61e0e40e6aafe87968cdb36f30e2b0dcd68822adcd4e371eda36e0040dd3708a1d0ffd514e92238124c3fdf5b405c6ef4aaf274541e7483e3d09999c30040db0f6be07057562f12e283f1165fe1a20ed4aa9de24a8d4c9fb1910e84a2abbb0040bb9dee37f8536b0391ed06ba3802757eaba682dfa542b6c884843ae6c24907030040fb018057967028daef49794ca01b0eb7066a77be24b4147bd50106e1d0b1b0c600404d0256a1e7946d8538f618c6cd25c8a5a4a26152106e5f0cd23b2d9f6f2bd9920040a988bdb792ef0b4b06adbb810d4e487509f17279be648331d1699da1b61074fc004082ce3ad0c92ceaa714e33fdce3f37c15bb486d2368f6c139fb5c0cd000e95dd1004017db9292980165e2be271cb12df45c4191ee67b067ef46974fff8e64490f75000040ff1c0fa5269b04f8016a6c1496b842c69a59744990681220f5f1e71acf3162510040bd7471da1806757264067e15cc5c7c3aec616ef9e61a1069bfaef50580e47cc900411220408639912dbe3f8d87808505570489acde46bd4740e44fae7ec61d8093aff004111af5bc7ceb14ba6b20e33843c1d7d215c896c4fa9bac5c21001d4011b1307f560040e1b63d5f31e3972c2d2f735e223f27f76a789f1d11634b77715e5e77af66317000402a59cdf2da1996d1dc59911534aedcfad12d671402aacac4ea063d4630c00543004049c4e35415d35291766e7310c2d4505485661842abeb88074da545e4e6ff4521004110012b2628cc3f0f2b2c8f0ba200d6551eeb538955ef19fcd137ed934050c4e5b00408f19363876ef3efb791a33be32f6a5b79414406166f5443cdca016db22f3cb8e00406fac6b35ce7c04abaceadf72dd75367536985439f8178bd41b9812487b0a01990041122d1e8d861db71ec350af60405ff3371be47e011a3435c05730b99cbfe99a406
Decrypt with length of 401: g?0óy<?¹â¸¶?¢ô|?8??ö>¿0±×?CÁ¨'¬§zÑ'®%µîA³åÚvÌ]Îh_K?¿èfúã+C5ß?R?NÜØÌõ*3?½SO£^97z?ÀúcS??ß????4?e}mø²p¶RW<Û¡qw_ÃôȸIµ7èÝ'±h¿Vmï=£??Éݸ?»?NØ`M9F¦-iä±]ÎvAe6Íà?2kLÜ@lÞ©?_?"0oTñbØ^½ØêéüÏsHH?Ó$¼ô?fN´??9^ø°³ºû¿wØAùØQ:4x9¼ð?KLfEÊðe¡?+$ü"¾UïÍ4:,Qñ·dan©=ä¡?~abC0F1û?a©«x§ÛÅ:Üø»G?U2?y??bÏyÒ©Å¿?g,Lü¦ú`©\?z4î/׺;[B?ü????SÝãeéþå?p9?Mm<Þ»?sHxM?ö"ºÊ7?^?v?Ä.!ÕÙÃIïëú[Ã\ÿû±íc2°·~?0³p?vØ®ZÄ=Ò0?N®ò?¦ø\?°?CD/Ñ7?s??|?
Teststring_Hash: 71A0B42A6D7823C8FBCF450E2B331D39FCDB6C86
signature: 0041121ad6a7d1a2f5a9afc350e7c50d4bbb3cccf82110c69a3934d646e7e275cbfd00040ee686bdaa7f52610d8815a21f931d799a340eed4e8dd65d10d4b792d19b592e000401b0d5e5ccd3a7c74d16b059837de06f823efb77778d412fbf3c7d971d92ce6e9
Checksign: 71A0B42A6D7823C8FBCF450E2B331D39FCDB6C86
Teststring with length of 501: ?R!ªLÜ?dJ6%×¥Á.*r?J?²ê38?È=þ?ßõ@EkqS??4;¤?«í?rá4Cmm«Ä®?É<µú5s¦[p?ÝVO^Cð¨?`CÇ£¯?ýRq@¹»óß,öÄOóÓÊû0ðü¹e?Àè;?ÂVö¯AB±{Æfü#ÒdçÇH¬×SþLè£?yQvôê¯ò7?6¡µíÎRR¥?éfÐè°ÓA§rk?ôh¤X;?ÑÕ½Qd??ãá¹?cHW?Nù0í;>ÉC(Ñ^?zj??òùA²:?$ëEnÇ?[Knh-?Ûpz½ú¿?,«3soj]í¡÷o?ܶ«¢À(QUÍt,ôl?Kû?åÚ®^??¶4xälñ¾ûÂ#ÿŰÞ_"M÷õ?å-Í©ÌæT?#Á<<?]??ºgÓ]z¨¾øÕXÔÛvê»?7ýç3ë?fËÈÎð?@;)?¨-ÉEÑ´n??>ë¼h»ÔÂ'=NÚ?±J¤h#ªÓ ÌTµzµß´¯?iÖ?Dù¹âó*¨ÞDÜE+?GÇþ¯ñ¯ cÒuâÂ?¦¥(NKÈ)t*Òíý¼@Þ?Ò+ÞÆïV{?wU?Æh?g?UÛÄÅ?MêÉTÃÝdF??QÞk]ñ£b¿²K¨-¯?.CLï{à?'·VÁ¯L?jl4þq???ég×ø¯ëÓ-¾×R1¶>?¸yв?k?
encrypt: 0040c70df918166bc8f778cc55c7e368f5d36eb8237d0cdbed6adbc266861d96c4c7003fa1834bc3d50a6e4d05c5016d14faf3d1da708cf653311922d360ffde3be93f8004112124e9ee94a17d3dbf207b8583d0d08142b76d02b370c9680cd0182bed7de1e6003fbb82e432271d7acebc8ad668082cb6e2a4b887cafbb5c70cdae08837ae52ccf0040c7f405db5639b5eec55763cb8856c93c8ae969be2334f4e603c378d1e33521cc0040169054b1ea3de1d346d1b370d2e106a4b12fce43335ce167148c9e369633517300409f8e45500c2680f775fb6e9685e561d6fe970925594aac3ad21ab7595d18727c00408faa7193139cfc604a898071e0e726c643b187304f993db19c64ade30aee4d6f004110e676a9aefdf4ea26cd4224d10638a9e8e92857f9a46450bfbe6db7690f4d16d0041104f3eecdf604025501ed9a1bf7694cb6792ee45abfeda295d9da59aab02b4131004017c16c5dff2259e4bf8afbda04e1375f478140dab424bfee39346eef733bf49300407ee5c116e8aba5e5448a3b4cd5aa79b0b8362166f378d3eb94ce2afb925e5360004042961e67ee8a16df40708ad9256e94372ad0794d77014fd1e534603894d1847400405b51f9093166a8e70ddba25729e9419b99e737df144cad6cc4fff6b47a9889520041126b42bcfb83aea7f32ae8d5e33926fc225fcf057fbbffcc07d8c39fc739b76d8004042bfd0244486645bd3394c7a0f81badb16610f6ad3575f4f5dcbb57d8c5f2fc600405ccd59f4d402f5a2c270e96dc2c12dc4b39e2f219c25d6c0c82b5aeb567fdc440040561cc3b74f48e8e5d76e6e0ef20d6fc635898a6b6c134ce0997493c5ee0445c500411058d7cdcb4fb8ce899e70c612daa1cff21922b755941ae511803205c1bdb2cf00040dae6bec7f595e8fd5a5b6c839a5ff26ca1c1d0989a5cf3b3a605879583271c3300404cb1e8426725377f7f19d4cf10cf7dc9b557a90b84a79cc3912cadee43c5d1a200405ff58ce9e638e9e08b03cc8db9644951c353d55eaefc0729868819dfc3aed6cf0040cb130553546760b430d2d039edb82bfbb0c02ad9a031e04a0384da808b8c609e0041122e25463c5e689453b350a32ed79d3eba8b591122a09ecf7ae8f02720b54e8e500409281ec3f104faa73bfd61ffdb44c05b0421d668da6bd1aac13f4b19a1a53e1040040d6e56225ebda5ee2ee5d06382ee29d41fc2f4b973e70d7dfdb774f5aa2f73994004110fca5d65c1959baf9162d49e677aa32b78d08e2141cf1b91fc2ef3535885fd1a0040a4f8871f7189eb4b1ce3c0ecf8171de83d6c8cb9803d4b07c2fcac205e510a420040244547abca4ef1f159d3684394f1a8a662467edc6cb307f7d489da9e9a40f9fe0040c31619252df2a81e85320bf33e7df9ef7d024c088d298d277e2f8bcca354f6d8004055ad91b902980736f97115ccaba82ee81215fde39f4b88cb8ff5f21c48eef7bf00405886ee4518c5cf9e49116e3dcdcab2e6c657095410d29761dd3903eda8cc9250
Decrypt with length of 501: ?R!ªLÜ?dJ6%×¥Á.*r?J?²ê38?È=þ?ßõ@EkqS??4;¤?«í?rá4Cmm«Ä®?É<µú5s¦[p?ÝVO^Cð¨?`CÇ£¯?ýRq@¹»óß,öÄOóÓÊû0ðü¹e?Àè;?ÂVö¯AB±{Æfü#ÒdçÇH¬×SþLè£?yQvôê¯ò7?6¡µíÎRR¥?éfÐè°ÓA§rk?ôh¤X;?ÑÕ½Qd??ãá¹?cHW?Nù0í;>ÉC(Ñ^?zj??òùA²:?$ëEnÇ?[Knh-?Ûpz½ú¿?,«3soj]í¡÷o?ܶ«¢À(QUÍt,ôl?Kû?åÚ®^??¶4xälñ¾ûÂ#ÿŰÞ_"M÷õ?å-Í©ÌæT?#Á<<?]??ºgÓ]z¨¾øÕXÔÛvê»?7ýç3ë?fËÈÎð?@;)?¨-ÉEÑ´n??>ë¼h»ÔÂ'=NÚ?±J¤h#ªÓ ÌTµzµß´¯?iÖ?Dù¹âó*¨ÞDÜE+?GÇþ¯ñ¯ cÒuâÂ?¦¥(NKÈ)t*Òíý¼@Þ?Ò+ÞÆïV{?wU?Æh?g?UÛÄÅ?MêÉTÃÝdF??QÞk]ñ£b¿²K¨-¯?.CLï{à?'·VÁ¯L?jl4þq???ég×ø¯ëÓ-¾×R1¶>?¸yв?k?
Teststring_Hash: F68E0495E16768E81023EBAB5505ADC2D710053E
signature: 00405534f6484bc0a28f4d20653bf5cfe3bcba7f379747597cf612f39081c3cade57004116c6f15f4d95960172276608fff9e2d1d6d666fd8bb15b0404d8f0ea57fc9bc0100409c72c736ad95914343beb433ccb47d37ce132d2c998882c38e153d5e32039f8b
Checksign: F68E0495E16768E81023EBAB5505ADC2D710053E
Teststring with length of 601: 6u?}AÙ0¢?Æ[?½"tW??=5?nÁ}ÌäWôdg÷·?d`î?ÁsüÌZÊP}õÎîs±+?zñðD¢?éÚ<h{çÙ½í^«±?ãgÌ3^Õ«Ù6`µÓ?NXSô}W8¸ä¾?ÕÞ:þ+í^½ßbé©÷lªÂ_@??õð?\!âë:,N£êR?¯âw+ÿ«jÁIþ?nÂeq-F5¥ø_J?¡?ècqG?á?A?v?Tu[̽ò?Ѿø@JëhV,ù:â9ZÁ¢?JßÄ?DM£;S?Þ³æ7¿ò^ä$,??ÑíNÄ\íF}]U|Ít*jYÙ(°øOÀÍgölñ³úðo@?÷b¶?$?ý¢]n\?¹`f(H;Bô3÷È´Ý?GvæÂ??ìuêj?Ñx??rR??¾oà¡?Ô[?Xݹ\í?Zߣ??ÒOVèdJSÕqW2×?}*®\??/ÂÿóÿÕêéþG?_b?]ô.ú¬?©eiK|?í6Ü`ÍáóÛÍàC¢©@KÅ2¶N?ÙIò, Í?=xÃ?Xno&ÒD?sã&`:¹^&?W<1¶¬7Kå?ÜW½k&ò%>¥!øìþfG§,Aq?[RS·×Àa¯?(a?r±Aëãê ¼^ýcb=?Sÿö+¨üáoüÉ?\\?¨Is?6XÁ¼©??® ??[oÌ??W?1?+°Ü?ò?»ÐVØ´??#+ÀKõb:ªb?0??¤&£ÄMhÍ\³>ÑR?8cçÎü? °?i?·S?¯#¿??PØ(?zýpPM:ò®U?·ÆÐ¥ªD"A6ª¿ÄG?Ñ´êða)ËÎSIó?¼Å/
encrypt: 004111e44077be90b16d88e83524092a373cdbbcf435c8915890ff16577ebc8348793004098a44af1b177a5acb3ecd173e01a604be02a3a4a2afeb0102d21b8f87cf4392d004040d5a6e7558a7f1766f63a0c294451cc75fd6ab81b7c35d28f0902b2aeed6bd000401b576d8afe4604718cb415d5cbf19aaa4f4c3f0fece7d7a1388f6ea7cf1d1bbb0040462a75512f695f93b35add7f8bc8d0a75fdf350c680012fce13f9ff46be9333f00408a3306b945d94a4e411a938c68eb84608b2bd06b286eab6b8ac2995783a281a30040acc87bcdbddc03c7b8856932a8d64e47af663d6b672eb3d47153f6a35489efec00401bf940465ad6ead00151092dfbc0c33ada4e7d39820fc1247959b46283187c0900411119ec9369c450c0a70bcf8b01e794eaa7ea00a4245875201aef803a89536c4b50040148ac410325a71c4c32b2935d264da971cd1c192e0c609371d06adbf80298c070040386f982b0bb0195610e57d329f6d72c114d47759634af50d3b4934b3aad87c69003fbbd3fefef5a58297ed836fab301ca9af708771a0450b3c07a9d570bf178da1300408ecff13cb276f29f676323835cf675822fa7fc53005e46a7b48bebe9b57f4f9c00411264c5d6071d06c26d881327de60399a3ad1a2cd05a3a5eee6d2fb38d8c020cf700402296a5a43c6df70a11e640c88d3c4d576b8cd20f3be277ec1657dd7d3de813cf004066443a34f15bfa4bc72d8b8bdd0ebdcfe44aa2fdd31fcad38b1653388ff3cac90040cea48bae0d84b19bc8161602eb7eeba9f7e02fa5836526dde69c1cbecad7409f00401d25350ca4463ee6561154d3793cd2c519049c584efa6eb83f0b9018953b6b8e004076791f659c24ce002edc4dcfa61fe30eeb4c1aaf2b756283f004cfd466f1bac00040679c012b6b0261b45907623ba3a7e0cae70b3f67f79d96395f17e1c7014c9f3100411050e296f0e8659a86f87dd65ba7334de232ca0dfe3eb1f2d649487d1650ab2270040dd7f93f19f6f6ec7c55e658ce936735a2733aab18fd7691bfc8a1d1ceda67822004011c1314ad1b4306cb3492050b638d9b2d53071fb77308b4109c31931f77bfc350041122cd296c7b9c30f2bdcc22e2b41cc606bd16e44580b0ae6669d8115cdcfe766d004112e4e93d9c2feb7c9c44b8a0a7c5e284af812f4470cb09369dd73cd0afc8fa7d10040b0ca7e664c766a48e0e850d1d66d1f463d9dc47f0bbb9fa897b1fa1b18109a4a004111d0f61960ff08ba00a051bdb2d845ca1666f2ea65bf0bbb239cefd1491846087004058a12ad998dcc0e3efdf1ea0c49d87c562f5cf2c8eeddecc3cb6f69a8ca0cfcc004110188419c8111febc94d3c16c6ae16bdd69de3010ce14a2bbd4ad4a81645f9e8d0040fda8139c0cdb8b9d0e93810989e794adbded43eeb9e4000cc8b528768c6e1690004112ad3491fbe42f020a6d54d34fe776baafd0f119bbc9a96a79ad50ecc73343c180040186c2ebe3d3d36337a660df90e93d818c340fb0d847ef2747211e24ba8cff4410040f26915aa8e18e3577fb743b3b0050948eb59c5e1fcd6362d4f41e8262b47811600404607ff26379feb24b2fa0a1eb242f4afb961e124eb3df682a0b217f7afbb4b23003f2f764ee3385a580db1544bb4a99132826fb2bc09d8fbbf45869f0b8e80e304e00401130f9da444b3ecbb6df14f7f6fcd4bce3dd0746577df94845e6744218112e8c004012d23ccb817da14f30f20cd19852f46ea04bb8133ad9c3266f3a2c3ef2c1a5e40040ff28a644fce46ec6edc8669d680557e69f2dd2d517992971765971d90924bbab
Decrypt with length of 601: 6u?}AÙ0¢?Æ[?½"tW??=5?nÁ}ÌäWôdg÷·?d`î?ÁsüÌZÊP}õÎîs±+?zñðD¢?éÚ<h{çÙ½í^«±?ãgÌ3^Õ«Ù6`µÓ?NXSô}W8¸ä¾?ÕÞ:þ+í^½ßbé©÷lªÂ_@??õð?\!âë:,N£êR?¯âw+ÿ«jÁIþ?nÂeq-F5¥ø_J?¡?ècqG?á?A?v?Tu[̽ò?Ѿø@JëhV,ù:â9ZÁ¢?JßÄ?DM£;S?Þ³æ7¿ò^ä$,??ÑíNÄ\íF}]U|Ít*jYÙ(°øOÀÍgölñ³úðo@?÷b¶?$?ý¢]n\?¹`f(H;Bô3÷È´Ý?GvæÂ??ìuêj?Ñx??rR??¾oà¡?Ô[?Xݹ\í?Zߣ??ÒOVèdJSÕqW2×?}*®\??/ÂÿóÿÕêéþG?_b?]ô.ú¬?©eiK|?í6Ü`ÍáóÛÍàC¢©@KÅ2¶N?ÙIò, Í?=xÃ?Xno&ÒD?sã&`:¹^&?W<1¶¬7Kå?ÜW½k&ò%>¥!øìþfG§,Aq?[RS·×Àa¯?(a?r±Aëãê ¼^ýcb=?Sÿö+¨üáoüÉ?\\?¨Is?6XÁ¼©??® ??[oÌ??W?1?+°Ü?ò?»ÐVØ´??#+ÀKõb:ªb?0??¤&£ÄMhÍ\³>ÑR?8cçÎü? °?i?·S?¯#¿??PØ(?zýpPM:ò®U?·ÆÐ¥ªD"A6ª¿ÄG?Ñ´êða)ËÎSIó?¼Å/
Teststring_Hash: 07E2B9DF791E3163A2D00A61B668AEED539151D2
signature: 004115b0ef6e055a10f6c3eb7cad01e549ed5f3076de50604bf352677fe5b04f57ce400411a87f9dc34578c5a36da532de338530f3f98edbeee911870172c0a5cb873704500040f00a7940abfd5edc88088a810c097676e88519419c5a21c236daf3e539b3cb57
Checksign: 07E2B9DF791E3163A2D00A61B668AEED539151D2
Teststring with length of 701: x???«\ÕöZ?xp?Áeg?°ø³¨õ¹ PµI??Óç?ð?k³?TâmA´Ç½1?ûÒXÿp&×â¹VµùóÓÙfs4êhR¸]sHq?¥L\@[Ø;¼3ÆÙ0Ìâ???ZZu3£?èú?Ânà"úƯ¹áù¶-æzʾó¶È/³|ËF¹Úr?.è?ËíN)µx?úEƳíî)©=J¯?¹q]?äD?!÷,µ0¤®È?>-!)Y»|é?Á??Qæ¤õÏ%}´ÈzÑ*ÕE´6sI&ÒÁM«ì?e|ý@?ß#¤ßáí#!Z??Â?Ç?_úßñ¿A·?ÅNÖLM×?Êþ??Íxö¥?im9?yÁvÒ?kO9oº¥YÄïzÅD??ù?k;?(¦mÌËB³?I?¶R?y'?0¥½¶ ?Ãå`à ?hj?§nS>e}?lE?"Ûñ8±Î°í»øHkõ\]:-íçC!³Ì??*·?kÉ¿Ì@¢3pÁ¾W`?P(òÇìÂßßâkÓÕN?ª6é*²O?ð?hV1?´%l?(y#ø_w2+i/?µ??*nºçO*ÌËÜÓù(®:y8Î\òê¼cÌÛn?¾há0~A¡gMÞ®»¨£Ù-ùH?b¿W>?Ó,é)ê¨×GD?)LÃn|_x¯-?4¹+Jøý.ôj0ðйٸ,L`c}Ùõþ)?ªÙÌA,??ý{O?Ð?ïÕ¯Ä×Ðg$ÍãiÐÂÍw!Z¯ý=i.íZ½Ú@B6]ú?®?6±p?Ù}ÌZÍô??n'ð~Él¹yäèÕÃSEþ}?Þ8|úu©nfÁ«böÍ`PÄô.ÓÆ¸)Ï·CÁCéPWéÁÖ?/?'R?mµsÑ??Yÿµ?4Â`ä÷Spä;Ñ7É?'¼-UWlùëToú-??¦d¸¼mç,Cr?uJ?üÆå°ñæ0\zÂ@ÆÓ?Ù?8ø!L?åRá%Èüí¹ÕÐüÓÔTv
encrypt: 0041121347302023ff3421e9e579ff99422789387865f122c61a6bff48960ec8700de004077d78ac34b554ce1b84612b107d14bcaf04d393bbae684369ba4f6f95d0e5e620041129d1c0cc382b94cc2a57240ed9cd044661e36bccbb7f8018c47640dd94ac09c4004017a5221c188cfd3f527ef0fad8fcdb65cbbbcc2a97a0c03d86468075dd798c4b0040c2b1365a633bad30d7bfa3f9cdef12ac147e29ad4533a1f525b6dbc4af19d8e90040daf0600fd799231bef14287287d254624eb578ed2d68aed481e839261931177c004082745c11d0072cc941f3d5109edf4fe316ba511bae203fd36c7a3963c1d09642004037d9bcc9fe94e13690fa3b4a2835cd6a7dbe57185fa5f030e2140f36851954f7004097a5095c481122a073988633aed4a2f0ac32f9329b9ab163ce2a12c2803a2b8b004062312d2e4d27a359627ecf1d8339906a18057a37c0974bccefc2ec775b021f7a00406348cbd9b38078cb552e13382638364c0429554f3b7bf190af4b43658aad318800411295644883f3e32099de4f829b47cf6f1a6855502ec2b3a76ef1f1b8aab96b67c0040abb73afbd0622acfcf5a5d0a9c7d37d53fe546624e2fef619e8a73e3ca826b02003f820a72d34483eeef3a89dcc32e94e3459dbd7b7f26353e4188d71c9b95083b80040816821dc910a33a0d08e540876e0b44ab07fb544f89f2fc44e5277f2dccf43180040e425e7606947e0bd22f22b43c31784e27294cf99f9cc335dafc2de83645e07ca004111bc867b0a127d71b2483a9bfd553bade3fff184f8cdf45d9b2a1b70a8e868653003f179b4f1c1a60f944910feb93d0eb866cc5f10d95d632a498c18592ee877c32f00402412dde55c2a15a427a594d673a1fd8bed2fa1ae6c3b67418cee208df58a1dae0040234f1bae9a679da45585441a4d4d68a6117267367e64b0629b717738eca27440004080c9b9982e42592094466bcffe70f39382b6eee1edebcfcae2be1b57ffc1593e00407379b34fbbc0b422f43be83887949b1c4a8d548c0b6419e86bad5f97e7dfe9f80040d2af620cd12feec52ff783273d0d009688640512f22c226b163a2e6be5b40ea300406712d6b6c97e0b603e819f07ecd4ea6a99130bee2716148cf9a66970b2d756ed0040dfa5565647ee51328549922f7472fbe00fb921c45f7dc072794fb789fa82fc4d0040e2bd2d61f1d780ac128b594bb38715e70a70f8be20819a44757ff5a58bcaa3b00040422d9b24817fd1d81dad3b7e711ecdb44f4845606cba29b3901d279ebaaeab8e0040c96f4c709c04e70b545eb7c709b92cb75d70d878b25002c3eae8f9edb030fb40004015598e69830339a81ea9c36d4935ddf08584d5380162de88aeafd98754e4b079004014d19bfbfc7defdff1e5da185dcbe86839df9b834c026d037eeb4912288aff420040f6d82c6444e0a52f4a64ef116167a839bc4b82a7c756b8229a7caf1f70cc1225004043be40d164817e4c4137548c59fab29986d7833dfa70c366fb869fdfb4b0e3450041127305804bab8bd6f53ce72dc17ebbefa2ef2f277f369efaf4c2300b76fee0b480040e9058a0961914d1200baafcbfd2b584e468862c7e506118207689c7365e351c8004020c1dc935c66e9efe93902946d9a21b6b3c042aea4d2c7c766506f130bf7e717004035fd537e6b4373be71891be37cce3e8804d2ae35cb819c642560cc0d652a411c0040a1555a1f96f665102c71084eee70f70045b14ed1baf14f0d572d2e241878c83f00403681258b0dcfd92f9c7c5850367dd252e3d32731c0ed920008b930595ad34f8c004110fe51a3263ccde619725f7cb175581b83f6e5b0d5700e7c6dc13da132b5331fa0041121355e6d8557e5d6bba3653fe0baff2e4664d47b0d3e3f90ba9844a45a958fd100403bfc9bda4cb0d9229d25948753c67064bbe8f5f3ce7811c94954d7da476de3550040413c9d508c0cdd13f74be73b648e799949c5be791886877b00a11a96bf136d9400404cb726e4af94a0d2c5a4ec8c0f6871a3074e7f5a21bf46ec775c2192fbd278f6004110f4f4183fa635c0e6578eccf9cacc63f2ba63d2e0a8ab0df32ba53e30752afa9
Decrypt with length of 701: x???«\ÕöZ?xp?Áeg?°ø³¨õ¹ PµI??Óç?ð?k³?TâmA´Ç½1?ûÒXÿp&×â¹VµùóÓÙfs4êhR¸]sHq?¥L\@[Ø;¼3ÆÙ0Ìâ???ZZu3£?èú?Ânà"úƯ¹áù¶-æzʾó¶È/³|ËF¹Úr?.è?ËíN)µx?úEƳíî)©=J¯?¹q]?äD?!÷,µ0¤®È?>-!)Y»|é?Á??Qæ¤õÏ%}´ÈzÑ*ÕE´6sI&ÒÁM«ì?e|ý@?ß#¤ßáí#!Z??Â?Ç?_úßñ¿A·?ÅNÖLM×?Êþ??Íxö¥?im9?yÁvÒ?kO9oº¥YÄïzÅD??ù?k;?(¦mÌËB³?I?¶R?y'?0¥½¶ ?Ãå`à ?hj?§nS>e}?lE?"Ûñ8±Î°í»øHkõ\]:-íçC!³Ì??*·?kÉ¿Ì@¢3pÁ¾W`?P(òÇìÂßßâkÓÕN?ª6é*²O?ð?hV1?´%l?(y#ø_w2+i/?µ??*nºçO*ÌËÜÓù(®:y8Î\òê¼cÌÛn?¾há0~A¡gMÞ®»¨£Ù-ùH?b¿W>?Ó,é)ê¨×GD?)LÃn|_x¯-?4¹+Jøý.ôj0ðйٸ,L`c}Ùõþ)?ªÙÌA,??ý{O?Ð?ïÕ¯Ä×Ðg$ÍãiÐÂÍw!Z¯ý=i.íZ½Ú@B6]ú?®?6±p?Ù}ÌZÍô??n'ð~Él¹yäèÕÃSEþ}?Þ8|úu©nfÁ«böÍ`PÄô.ÓÆ¸)Ï·CÁCéPWéÁÖ?/?'R?mµsÑ??Yÿµ?4Â`ä÷Spä;Ñ7É?'¼-UWlùëToú-??¦d¸¼mç,Cr?uJ?üÆå°ñæ0\zÂ@ÆÓ?Ù?8ø!L?åRá%Èüí¹ÕÐüÓÔTv
Teststring_Hash: 3C324C10312090E407B74DDFFC811AAE3208D790
signature: 0040252446b5abb3b1aa8abf230226ed435668b54c38fe939177ddb7d2536d2aa6360040e75ba8a2f4c4ba5b39fa2c1eed66253a0db083862fb763ec90296b76c68fa3a90041161d3c05a3f20105b4b0d217823eb017012c3e0dca3888de1691d1fd4ad0688b2
Checksign: 3C324C10312090E407B74DDFFC811AAE3208D790
Teststring with length of 801: ?r?ºd^¤é¢?P?þp?ÃD?K§çoªºSê1Æ??(ï?Ä5×v·#âÚ70ìáí"õ¾ù.?Ã9VÚ"(k¬t?ßíc[9(Uøe×í;§?¼q<?]Ím?æNRë?2ôÒà¯?¨Q¶?S{Ö=«£!lú2M¤ï?ÁMþ?áÚHÉQ÷¡`Äǹöøér.TMH?gdyÚ}dYi"¹¦®?øb*îö¢?ól4?0öÑáî-{¢Á?x5\o?Í`Þj6áÖhõ?µE7ï©&÷Vî·Fs?R=+ÍjÉ¢?"PÖõç£âV?7í?ø&ÆÔ¼dõ?K?E6¾ã^Xú|?5Õ)íÉ?Ô²066?N¸?+>,V²õ¨i?Rã?e%,1OC?%Ã?r׿~?ë?à ?Îå?¥lÅ(îÐ?A°"?ádð;?®î}¶(ø??i3ìWX¨Hê?©u[ýn?ÞÖzBfþÍþÃ)?½¤ÿ¹Ên+à3«ãÁö]Ù-TQF3í¡·Ù¤óÍMÐý?5?ùs??ÃX"?|Õ?¹?ÙUÀ??.T¨µÚ?\£¬Q¥¹?ô?ý5'.?{ò?àÈäA?^ò?<Àv²(Úlö)Q?lãáþg?a?[~É?N²Üñp?æp?å?d52Aû?£´÷81µ^©eçGFáoº²'ð8¾?¶¥ÊÅ?Ëê?¬I@¬µS°'\I|âäõL(V¡ò5?i?.¢è?Á"~NªÆOu?³(?p5KñÁ3ç>É,}Ee?ÆÚħ"ÎÏ4ò·^ì6Ìêl7?oWv´ä¯kÜ,O2[¢OzÍeÛ´ñ¶ùçëêLÉr¾%<?æ?ýÛâ?é;BÓ´ç;Ü:ì×!^?b¢cÿ}µÖh?o¢edrÑÖ?¼ÎUÏÐl,ݽªedVþ]ýOE??+Q«xA?ýÊÔÖÂz÷<?Ó2?ú[[äç½PGEkÝ£C?±w~÷Ä:Äî°!?ÀøÆK§è8Ö.OËã6?Yb6V$;?qÇ$ɲ±!rþ,©òêÐl'?¿Í]Ï?½¬u§5ò?ÿÛ¿õ?j8?ü?²àsnÕ¤Ùs-??qÕ?àÌ`5P+?ñÜ??(X󪢳ÿ?°m?õÙ&Æ
encrypt: 00404c862debd286fbc7dc2224b4f229cc5806395dbe9d029c500346f1ec75a2e922004091072693e581543dd3a9a8e68679f68a76b30bb639fce87efdc5a82ef80c45ce0040ef9a3a68c579ff9418540770488d1efad05754e00acd5e9c9011da84cd9b2fa60041108ef221a4dd21763dae65b0a2c1f96471c3e2515fa934da68731bd56002ed52f0040db774ad7b77ced781c6bd8faa4235b0b99bcc1b2999b4f631b5e37a742ede83c00405e0b4ac09aa7a732ed5d0ea10ce92f7c6fe487ee974314e49bf75b626d9fc528003f6fbef499e76905efee131d2a44dc4ca62ea7c6c6ec1e7ebeffe89cc34565da80040e60c8b70ccc7978c42652fe22aeacbe739a994567240cce0870055fb50e90d5800408be36cd360d6b556992e9af312bae36da50e7cdfecf79821c802d7ce6fea46ba00409861f9486005daa78ebde4199457ed113e5e5b9e7785c82a4734fd40f32024cc004013b890e7c917c4990c8b3dd34eb038f7d843bd2fdb101380765a7baf3d9ed36400403ee12b73e507578e61963b17d3e8a1f6e8f39955355c78c9947d796ba0dabc1c004087b5e2210a8c5cabcb7cf98d6173bb2772b46c2f95736a4c941bde3d2da8dcb400405a0603ba594d2e2c774864f12de68227123eacd27b4674619d5e7bc7e0356b3e00408dad486eef0e00063d0bd02674b3f53375a513595e57c16320b5cd4076ca64170041120fdcb5320c55cd910bfe073abfe2ce44d575308109240da89e0add56ebd552700405afada9202a98b47a6683d009e86b0ad68c145e6b480c29250727cd8598102820040cda59a8dfc24555e3d401e2af1c681139969067c70f7a3104392ab9b11c3be190040bd1f45efe996da2266a460cb6b97c217556b219ed99e74ddcecbeabf7a3f9a73004110c8c515c264ca09c29077bb0a8475dcd3833f24f515e93c87c4c282f3b4355610040b95e5b5d83c451a4d70eb7f7dc386df30388553a86c5c64c9a6e0ef5b81b4a020040ffadeff08e6bb45783e524a7b4f8c6802e6a88a3079ab28f7e7376547fdec9f300408c88c49055ae1c8e331bef1659becc6f2b72c40f89a6bdc653d75824c01dfb200040837072e49be31988f7e1b130850b84acfb7a8eb388af80ff0c9d7489befd2f4f0040209ac5f518bbcd5759d2e36cb7094016a771e7d5e09ffdbe8701fc1c511f84c1004112e78ad1b307affa28aedb0e13903605443a30ea212bac69089f063b8091ed7c0004112e3ae7a5b0da9a1f7b79fed3a8117843e22894fb33cb5eb06839f205db41a5db0040678eb9b4e267854a21a89beeadf95112df11dcd7ba32d1795540cb4241191219004112d527a736f27ab7c1eeeec768b31c9c5be62cc8a87e86c355fed39d6cc67d4db0040475d28db5085fa955953d378cdeaeb31881e6880d9cad05b163b30049044272f0040bd8392534ce665ca4079f10cceaa76c05ba09c470da2adc51cbe9f298632a64c0040405af7a6c0b4870a78a445ac020e99894016a70c2bea12c44a7131f87fb243d500404d121a348c025f6719ff9cee94ef04e0515971b27c51f959f44fddc8be10ca560040be11356c571e82529ca804ce5817294cb36943d244210531577c3c9b5f17916a00406c9354990aa252fdd46b8629619c64a60d3591724b9f4314f2deaea2be4415f200406c199db58fc5f261ebe5fd2d4125297edfdf6cd7872a7ba9b552ae41d1b937cb004066dc4cd3db62e94a07d772fcecd7b49ca910b910879eeb91dc78b5c0e885e6ec00406af7d32dbdb03f2bcd80fd67ed2d196f85369b713810d90356a63ea6d34dc2460040eb11034dd32ddec22276a914cdd5f305fb1be58fa4c6200cfceec8f6d66a46550040154a6df3c8fa39c84c75740ec70987f74e0ea0e4a505dca0bee84c336b954713004111480e74053150bd596b9e9bc6faa0ef0a9b17994f5019115853e2b3994424ee60040bc1b306dafe44a6a45976cdea00f955b49e5b090ef3a39326af9bfd4e081e96e00403525e011e7d1cc87872cea5c9d20248ef8293267c4f3786053233030550714000040fa3d074473cdd32cdedc134550d32062aeeccd7d6516ab5c06ef346d58e7f7490041118ed04b9b8132537ef6c13cc747f8007353b9afbe97a3acefbe15c05e844787d00408a509cf71a918cefbcd5980d08c4566796ce697600fc65b9fb0e9d45e005dff2003f19910064baf58e380ca42a7e562320710f3c3fb98a55ab01cc3b8c5ffbb79650040af2e5782510d3c47d71706980254bab9cf5576a645be92fd28554fe657ae2bcf0041103a4a4d509a4d6ed213ea8e8c0bbab131d1271a0f2de33638c51749f7bc09b750041102da3b96e09a98a7e8b67aa5fe35ef427b7e36f898b0c15215ff69dcb26e8b680040938ba5a576e1745e3b1d96627bbd3080466a56e43964f0fec3bb8bb583acbf44
Decrypt with length of 801: ?r?ºd^¤é¢?P?þp?ÃD?K§çoªºSê1Æ??(ï?Ä5×v·#âÚ70ìáí"õ¾ù.?Ã9VÚ"(k¬t?ßíc[9(Uøe×í;§?¼q<?]Ím?æNRë?2ôÒà¯?¨Q¶?S{Ö=«£!lú2M¤ï?ÁMþ?áÚHÉQ÷¡`Äǹöøér.TMH?gdyÚ}dYi"¹¦®?øb*îö¢?ól4?0öÑáî-{¢Á?x5\o?Í`Þj6áÖhõ?µE7ï©&÷Vî·Fs?R=+ÍjÉ¢?"PÖõç£âV?7í?ø&ÆÔ¼dõ?K?E6¾ã^Xú|?5Õ)íÉ?Ô²066?N¸?+>,V²õ¨i?Rã?e%,1OC?%Ã?r׿~?ë?à ?Îå?¥lÅ(îÐ?A°"?ádð;?®î}¶(ø??i3ìWX¨Hê?©u[ýn?ÞÖzBfþÍþÃ)?½¤ÿ¹Ên+à3«ãÁö]Ù-TQF3í¡·Ù¤óÍMÐý?5?ùs??ÃX"?|Õ?¹?ÙUÀ??.T¨µÚ?\£¬Q¥¹?ô?ý5'.?{ò?àÈäA?^ò?<Àv²(Úlö)Q?lãáþg?a?[~É?N²Üñp?æp?å?d52Aû?£´÷81µ^©eçGFáoº²'ð8¾?¶¥ÊÅ?Ëê?¬I@¬µS°'\I|âäõL(V¡ò5?i?.¢è?Á"~NªÆOu?³(?p5KñÁ3ç>É,}Ee?ÆÚħ"ÎÏ4ò·^ì6Ìêl7?oWv´ä¯kÜ,O2[¢OzÍeÛ´ñ¶ùçëêLÉr¾%<?æ?ýÛâ?é;BÓ´ç;Ü:ì×!^?b¢cÿ}µÖh?o¢edrÑÖ?¼ÎUÏÐl,ݽªedVþ]ýOE??+Q«xA?ýÊÔÖÂz÷<?Ó2?ú[[äç½PGEkÝ£C?±w~÷Ä:Äî°!?ÀøÆK§è8Ö.OËã6?Yb6V$;?qÇ$ɲ±!rþ,©òêÐl'?¿Í]Ï?½¬u§5ò?ÿÛ¿õ?j8?ü?²àsnÕ¤Ùs-??qÕ?àÌ`5P+?ñÜ??(X󪢳ÿ?°m?õÙ&Æ
Teststring_Hash: 29F0F5979D3DD3D91EC2E032651A66BBC2A4A44D
signature: 004077d3036eaf2d789b1b9c2dd580b3a85445a56c93a2fe9c2f4a40df54b1b3fa7a003eb63b1d9fd4cfa53d8a47de14e289c0da6168452b70e0f3a83c55565f9ffd4a00411257bcf9acda162eec9f8d0e3b642318ee2c1fbb180a641c0fa321af5adbdf9aa
Checksign: 29F0F5979D3DD3D91EC2E032651A66BBC2A4A44D
Teststring with length of 901: Áð?éÞOÚ?Ãy?ºÙ<í@wÙW??öw?ñÿIÔ?¹ðÌ|ÕOÉ´_;Ck¬?ªU?ûf jF°ªâÞ¶È@õÐc=ij¡Ñr4#ÞVìß×=Ûò¦bͯx^(ØË¥CÌ?¡ïÿñß¼ÈqKó?ÀUÊç¥ÿª%)°Õd£ {??à ~ÍÝc?c¹'&Û¡<ÿß}Kà?óð3G@ôÜ?Dæ¶ü¬w»"sdØ0S³60¸?é/2ijP6P?k_¶y»?£&:kíúbÔ¯HÙY?>ØðÊ?Ò8 ÑË?)B?ÁÔÝÅ7?e}E??ÀiA>§# |XÂ/%q)CöTÎân?ïu@ô²ÒÜËøu?EZ¹{öGÒõÌà¨þÛ}n/ò£©ÜÃÏbvw¬i?od??ª¬ÉóÜ@%W???)TC*l ç¾QØ?S³²þ`´©???æ??Ýin{F?Áãó?r«_ïêÐ??¸F0ÎÔ§ü?Æ6;?Ç}>B;®??+9.ÆÉÛô?uadôǴͲM?§5c?h°??4ð?uÒä|?y?`䨮þ^×à²k:½!?o?_å:\?ío|ÛÐì?vl_`k6K?¢?¢M??+âgæ?L?/DÓ;F?æÂÚ$?I7Y?kÁDÁ?ë2¿c???"9Ï?¦²?+ƱYH/jö쬫¢Ëk:Q}1®è?®SwïúiRÉ????ùãe-Zí¼?PZ'?¸âË?¿%uv??c?6ÿj¯Ôê¬DoyzªÑkÒ2vè?S¡øô¿ïv¡?b+_?"¤LÅYb`ïÇ&¦r/ÍϦ¡VÚ?ñµTõ?1?Øá5?5R¯±?¨??ë`??êÆç?ZT%÷Hn0¼Yéþ¨\Rw?÷Kå+|ôc=l??¼?NàË06?ú¦ÑD»FßôÈ9Ç?Wá?Ú\y±¦w·>"/?(Z?í|??wIÉÇåÙ"ªT$@ö9ÈîÄ???gkΰ>"??uI?xúÞGÀãYæb81iö'??xþkênLâ½Ð%«?U?ùJ'p?rÎÚ??÷Tüµº):TwN??Ó9®¾tչϸ¯öLK)Ý·?óÛhùç}.lh¬% «e!?)6y?\)?àÈÕ?ÆZ&òΡ©åZ9«&Az²ijû§è°.?»·wþb·étRTº?6RG?ßáåÆå?¥ß'×?#Sð?BîÏÜÕÑÆÌuºMåɺxÅ7WïûÜ_?ý"Jâ[Ϧ?ïO·
encrypt: 00401ce0ce77145c6d38100f1b453100ab97c304a1f80e637e87df0b5a25216a6b540040b803ecf5d4ad55e455ca619afffd36412f33b2e737d1c65ee8ee9d8bee00cd310040b0162f851731ebb5fc56ba1d4a8879770ad91a7aad3a3a22aede4774cbbd16bb0040c7919c4360da2fe47290862a69b37e53b8b87d1871866adcf3f7b43e9e586fe50040c00054eb35972ac3805dedeccc73bf6ba03ce2895121ca8585f30ae6e28c85eb0040c8275826abf5c48da5a671b00e3c95c7f82cddbfda934f48beec6ba2bb6651e50040b6b8f8fdd22a9cd149f8be16d3b6d217a9b06ca2d865ad0f9eef981d4f84897200411206589cfc004552ae592411c1e2be7e71dc084ee6dfe0cb637a0a53216d2aeee003fa653bc6d8b7c97966ea07feeb64d9a5f696a475fb37e6a9e1ade68d20cf4219004092a058d4189a700b15e7c29e119fa74e9405f408dac380fa052bc1d741f2f29200401d2cab0b4e61c124c7e68e53e6f488774d92921a9dc7000901a4be32599524a600406504635032a206886287557e9de8afc82e1e4cb3026a2a137ad11336f9ee54ee00407a9d19a005880cd84f39822d0c52e0a3c1bbe1d7115fdf04d41c496cd2329d8000401a50a3bf7bd558f9488d059a09575e2746c53a51b9317fa79f84216c072af173004052bd9e1eaee6371b5a7caa33ee9ff1aa01cb7e5d2912885cc021f4c9b45a89ba0040967c34dce51419f46f61165667cfbabbc1bab2b5a48a5a0045974c04fd5520480040da7b68ed1a6733e3e1d3333594e163af2ddd483fe533e76b6060a165b14b1d1300402e31d5b439429e74a06632f6ccccf68969a5975efeac04dacad8f96001e93577003f88eb2f5a42371eb784bc951b3943cbc864a1ea65d5895b955166206ac22a61d0041130036ced3b1abded852bcb96fe82178b9aaefe164137baba25beff860f6da7190040785886931318ab36f4f2eb543981e0435512f1643943fa76e19bb00c2e817bec0040d1f2d8c341b1191acde3eedde8f7d188ffc21b3d92c4d1fac71e696cbe27f7b6004089b694bb62abbd4ac9d9aafc622b3766fe703464c7d3f2fc99b53933d437edec004112c0c1b4cf81be722e433b2ccd39a26e7a58105c5e16b827fa4bf4c82a6ab02fe0040852ffac5189a2bbfad60f23e9268e004fd0372ec72bbe01a9f679a5cbfd3549a004110723048e12af32b9263f3d4b96aa0f157d96cac1a7e06a119f59506bc1f609390040490b184ccec22e6b0f013bf5508e5b08e8e521956e7d62104023ca5121fd72d20040e763c0d7bce0f55224c4a5db121b5142a0290381ac7b12fed52c1e1242371b230040bacd28438f0db2478f3ffbbeefd4980665fda22d3c79f433f8bf29b06f702faf00406fdbfe80339fbae2cfb8bd594d288b170eea6966890352c0226d86d63469e9ca0040b93844ce1a3cf08fcea1e9a8ddc9f93386e424a81f152ca07a6b490eee5e6aa00041110f43a403a37e4e015317078e2237ef782baffaca70066772df43734d66dd0dc003fd033175346615708f4ddd60e523c61123fc8c57476cd040ac487f00e1833da600411317c7f5d6b1c23213152a0d428f9884a5e66d4bc974d78f51c1d82a1a432ec7b004047d53534c9daa5163d3547a4a5cedfde78ea86a7cbfef948006f719e1e366904003e5602482750dd7990a36f4d78be5192b3c10ffaace9a06107808bcfc6f33418004012872afd373886a2eab90c25fdfead13593a1c5e7b75bee337fd6e97d0be0dbb00411056e9dcae69e72871c12a02bf302b9b8830d45e08c4e7947bf53e91ad33f05d70040a58dce24c78577ee58870cf626fdc9d1698fcc6ef4e6c79c0b9d33b5d6bc99f5003fc437be822818514e337c8504150fe1da52473213427d83b9babb51e1398a84f0040707fcc6183810c636ec1866b910d1cf7471d390d8ed3c520ec763005cb67c1790040e979fe46c9c11f7b862ded77860f10f7a26553141527fd8d79cba284ae1c67ae0040926d53c5fd9049201d89e3b4dfca631e9f3e70be045af54f0e7d2c94a60b85f80040de88e4fe8bbd2251e9ea1e897ff30a3f60c05bb8965dbb2a9da9e74d4ace2aa900404c46c5c542fc2d05eb876d82727a63e1af7018238fe0a1ddf3a9b41302713c8b00411009eea8a5803f862ac1d7a7213c6fe397b3713a0dc21cbd5cc5290504233bf450040ce3dc20c5d83283f9aacbc1af0ad1caaaa51c791bf0185ca33ee575039fe8dfe0040dc3b2036ca1028e58ce5e9c50551ad314443599f5c0754fb799f1ddc702f84990040fa437db0d9295c5d983397ef51c1d00e991e1a2cd031722974f5cf32355d44da0040d3b734d608bf4bd29b292ce879adb4d208f179650ddf078d9baf377bff4cfb1800409981f1d267a611123588ffcc42f6fcdb1db74926e3a50403b0d2e99f5a7e9052004049508969ac6c37608e9833ca92df9de85538ed7e23b6a849f5d4bd48e69b8fe30041117bfba0a40b9d0e3f584bfcc854f850aab7bc06fface0989c08445b49fdb126e004092836b847789ee053bd209e1e3a9f73d93dff518514e386dabfb7d680628af7f00405f90d33c25c2c66500992fd1f5b9397cb98ecc2742e7bc35b39d2bc50407a23e004098d5739ac0420b7ad80b11ad3bd12333276c8cbc71f1ef29848339f38dc8084b00408ad17f99cbc58aa1b5a9db01a08b67a260fa2b267cef385d3e54bd5e7dad0d73
Decrypt with length of 901: Áð?éÞOÚ?Ãy?ºÙ<í@wÙW??öw?ñÿIÔ?¹ðÌ|ÕOÉ´_;Ck¬?ªU?ûf jF°ªâÞ¶È@õÐc=ij¡Ñr4#ÞVìß×=Ûò¦bͯx^(ØË¥CÌ?¡ïÿñß¼ÈqKó?ÀUÊç¥ÿª%)°Õd£ {??à ~ÍÝc?c¹'&Û¡<ÿß}Kà?óð3G@ôÜ?Dæ¶ü¬w»"sdØ0S³60¸?é/2ijP6P?k_¶y»?£&:kíúbÔ¯HÙY?>ØðÊ?Ò8 ÑË?)B?ÁÔÝÅ7?e}E??ÀiA>§# |XÂ/%q)CöTÎân?ïu@ô²ÒÜËøu?EZ¹{öGÒõÌà¨þÛ}n/ò£©ÜÃÏbvw¬i?od??ª¬ÉóÜ@%W???)TC*l ç¾QØ?S³²þ`´©???æ??Ýin{F?Áãó?r«_ïêÐ??¸F0ÎÔ§ü?Æ6;?Ç}>B;®??+9.ÆÉÛô?uadôǴͲM?§5c?h°??4ð?uÒä|?y?`䨮þ^×à²k:½!?o?_å:\?ío|ÛÐì?vl_`k6K?¢?¢M??+âgæ?L?/DÓ;F?æÂÚ$?I7Y?kÁDÁ?ë2¿c???"9Ï?¦²?+ƱYH/jö쬫¢Ëk:Q}1®è?®SwïúiRÉ????ùãe-Zí¼?PZ'?¸âË?¿%uv??c?6ÿj¯Ôê¬DoyzªÑkÒ2vè?S¡øô¿ïv¡?b+_?"¤LÅYb`ïÇ&¦r/ÍϦ¡VÚ?ñµTõ?1?Øá5?5R¯±?¨??ë`??êÆç?ZT%÷Hn0¼Yéþ¨\Rw?÷Kå+|ôc=l??¼?NàË06?ú¦ÑD»FßôÈ9Ç?Wá?Ú\y±¦w·>"/?(Z?í|??wIÉÇåÙ"ªT$@ö9ÈîÄ???gkΰ>"??uI?xúÞGÀãYæb81iö'??xþkênLâ½Ð%«?U?ùJ'p?rÎÚ??÷Tüµº):TwN??Ó9®¾tչϸ¯öLK)Ý·?óÛhùç}.lh¬% «e!?)6y?\)?àÈÕ?ÆZ&òΡ©åZ9«&Az²ijû§è°.?»·wþb·étRTº?6RG?ßáåÆå?¥ß'×?#Sð?BîÏÜÕÑÆÌuºMåɺxÅ7WïûÜ_?ý"Jâ[Ϧ?ïO·
Teststring_Hash: 5D3ED697591122D9DA8699390DA9F42FBAAC8385
signature: 0041102fd0541f2fb07d01e787218d4047842c654b1fc208eb8f6f480a10fb0a932f80040de80dede650abfe51825b98d1a7f712ccbe7694641c322f611dc08938fb7a7a3004118909caa9000b34ded1f0d18bcd27d8316eeceb6580aaea99427f45c119f99ec7
Checksign: 5D3ED697591122D9DA8699390DA9F42FBAAC8385
Teststring with length of 1001: k]?%6+¨??h?«Cz??hS¿5Ç?²Ò,êM\+öK4.ç'?´½TNÊBót+ã,µ?Î??{LòÎ?7?ÛªÐ?#¾R,¬?É??´Ûvbu?a?T??GDÝÀ?¯?TØX¹?xåáEÛ1g5?SÄN´¨?;µó!?4ÿÎI??äd JÙ¶?bÿûýT"ÙÝ?ñVN?YÕjÎ?Ü!¬??åty¾?ÿZ?véoíâ³ò¾)uVÈÃp?Ó¾{ýiÿ±`-d??N?¢Â§ØíVªa2κþ?ÿÜ`ä?JÅ©ÊöAðµ'Nÿs?¾?4Orî$p'E2í²ÀÅ~?ð{C%R??ò?,üW÷&Î|Ï?k§¼?¤´ÿaé²QzißXh{_HÊO?ª4qQ6ÍVù[]A;üî¦??Wüð??fà¿%×iÏ)`åf·ô?ÓS-3ó7]??òÔðç5Ì^ì?ÿ¾y¦ú¦>*&?ªuºÖÅ?×c)k<¦õÊÇD??º"?Ëã2O)æ.{?§HD?k?kª K?g??´?È'ÿà3??£²ª?6?O¿?`¢?·?ÂC?fJT?ªÜ?7Äü?Q/pÔ?i~+{?-B?üÚI8¯£yÄÉ/yù\Þ!Ãå®N0¥??³B???L?¬ÿö÷Hrû½ï??dfÄìð?4D?!?¡\~þL¢â?¶r?¯s?£÷#Õ?ãwÔd»C|r?üöÏßÀaÃ???Q?/S (e:±µï1?ÚT2ªQEÓÚ!3PNw0³ââpIVwÀÖ?± ö{ÏDßo×ÞÃòÒÜ?T¡5?tÄU÷¾]ðwj?¿?Ï;?ØË¢±?꿽±Øuï÷?(ÕÐØ?³N@ek÷S?Ne»Ùy(`a¨?w.t3¤äáÒ¨î?ÓrÀÞ??8:tç¹¶+ê>¸Hù̪(Ä}u(?b%v????y2Î?8Ö(ßàZo*µs·?~èÒ'ìoX?}οÂt"?A·?G2ëý$ësb+ɱy?°HCo´8%礳|H·8ÍN-_^Nô?âò.1×óÙæ[çùT?'P55ýº?Ô??°:Çàã:Aím±J.?üϵdùî#UY?¾aiñöNô?·½wüÞÞµ®ÉhLÀ?ö¿n??îï4?Ý?´AZQên<}?"?ÖÁ?~ ¿d??謵Øïï)¾ä?6ô??¾F}u£væ¬ÇBð#?ò?{=Þ?_M×·??j2uÔ?¬ÕSAù?ê[Uf¦ÅòÝGÑXeC?3-?zx²Ö·>rS_8BµÿýeõÐlÐ`ßw,EÚþ\Ö°®??OÈ?¬I:j`"ÙA??lý¥?:Üè»ì* ?0ÖåÇ!ð×ÄU[¬±4<¯IP®F?ð?w}$2ö^
encrypt: 00404d14447751bc8fc41a28fab477b715ecfefce933bc1df79f4b3b23842831008a004096784c5f7a7388c545deb7478017afa69c140c1342859b422b772fcc4788f0b600404a074b6354fd4f101f54b678fd18027ad7e3fee5ea062bcd7b904804ea4937bd004110b9e10690c3c3bc75278a7d23861b041915474b9b58dc3e388d8a30f88551f67003f4a22ecd8ad59d8dfcb1ca56b9e8c36ec13bc430285afaae0ea706e818bde52a0040840e02150e111f5ebb1a819e48906ce1d5c7fa4a2ab7a1200f05a85d483389e000407e8f0f3535a860c5956d5714e591d1629292c2bc0ca33a8ecd581b7d6f4a162c00402293641c64a1a19250c865ffcba789c93bcb711650babd5d6d0e59191eb5e4cd00402d4c5741edb2836bd6df8661ac4af076a8fc132d0c97ccb234ea054ac6b8dfcf0040b7857c7f52e070b6f72baf253c48fe5d5e22918e81ff1b56d472951f804019250040e7c54a90932b9e1db3c876b3950c60cd4b1333aa8a275ae76d9ef65bbb5ac6bf00403102385e2d0bea8803c3e62afb193d6e4b043eca3f399710b5edfe8dd01319ac0041128ee4ce574cf9d92882ef33b80cbfb8262ef4fb69bde6a3572add70082e08d190040b2e6aa41bc9c7510b04b2d5bfcf4fc27e74522c0e8f6c1f95609e7cd13e68a1b004016e28fc6347a55b3909c9ad8682c2ecc4344950dc72ce6656f485a6a1548c2bb0040b725514de34d7f95d9bbeca0f9d977c73968777e4885417ea897e4f61cc86aa2004111f67fc0f2cc82fdb36a00d278d6ac291e7c911f5fc8763f7068b607f43ba6327004096a1a12317026378f5047942f49e39fb2a763015a8adf8c74cddaa413052ec920040f5dde867613ac28ba421ab1c384c35bcf14e86b21d4269be1a634e6e524a712300409d63107058a2e196388f8dba02426d6355cb5de93d961a78f96030e52705b2f100409843021bfbbd00307b55925ffb42a63a434ade070f2311c592bca1ad6759e0830041112d2338e7a2bb13aaec7a527b9efdf0bef87b34735bdcb984767e95f53a44319004061cc57e88b427705a3c2b8bef69b23ff6805a2317c1ef52d35c46c8c40c5b33600405da6b875e20dc0f46a3755949dc4103488585f557c929bfbdab97f3057ae57a700407dcfbd0151bf2a988a17a5819a605ee1be8f25a51d9e5ff1449e8529afac76ec0041111dbe0d122ff566db68a71975b1e8c68ef671698326a37d58db94a9beecf46de0040f43a43241fa3a7f58021162993dff7c93c8b35dc7a505a387b86d2d853d435c500403ff7277a88ee7ddcfc2f33b1a0e0255c5497f580f0623c150498af7b20a97fca0041125b556adccebcb14ea020ce82a9e496f19a0af8e239c2e49e1aa8ff2ed54f3940040e24ce3973bac2a8891f933fdf9838f5652e5f91360213194c581e84cb198547d0040333d7bd14a2583b57e1ee2804751a7161ea4e6efdcdbec10f27638a4ab8b4e990040cf72eacccf3fafb05bd04550950a9c1f38c7f85cc128f8b4f926e7750ee2f4f30040473ab29c8e930c6e5bd425feeb7c8407e48ca786bfacda2625ebf64b9e885675004045a9c4b3d6bb617e20ae69007341fb321897f5f11e2127b9aaf30acd1d6c10c500401e322829f8b091f7dc23e4ad3f29efdc4cc5cb4591f85e5a2a76b3c09d1362ee004012df36e2bfb7c0ab588b9bec00216193afbc32f4995e6da24b6f025ccab02ba2004076244c60cdc517c19fae6ec378c651a6da7c0bd01644fe84b5aa9ed37fb9e57a00404c3f86f9f956cb0ca3afa3283ebf83eec048445dbf5ad9bf0896f46a6c5ab921004063b71cae4688943714ca8c6d2af01e4f1682e05fcb1e76821aa37b7f4cad800900403230160630c54111ec69ab44dbd2ed4467ff689a1f45c7d314fb99d4ca73b5c800406526f8ce0075d681083d000917f70acfbed161c4deccba6db252eb6790883b660040af4dc3a09813a02825839687161ad3dba9383d2de067c2a478f59154e2e1dd030040b18b9f8e786df84579b1f2e195645091094f04ffa8671ccb69de1175ca3c14ce00405648ea750ceb824b6962bcfda409f45b5aead34b2c06ef75b041d345e50936a60040b9f04a5c7439498dab45e739310f12c3cdd7267e76fe34350e7276dbcfd7eeb500407deffce20914b8d327e7d2b3a58f3884f339faa2a18d57c904b29b5289bc93bd0040b2e1e25593d3ee589be82bd32da5caeb0328dfae27daf1844561598dc19cba83004111dcc47d823dfe01e98d21c7afd2c6a088cbcaae638118f7e9500fd7f58b7d0250040a6e947a9075d3dc510702830d2e1b6506393ede8681a5a951576043f361e999700411163a77bafb6757eaea7143a6f7bee3acc2d71c69211269467beff56267fc69ce004032a8eaf390203a8cac2570cc604b7141718691bb24acb872daac3cfa37c653260040cf5d2232f7044e6d4ed2becdf2b4d4d5f17086755e75b86728de679fb611c37500408f88119db8be5184000747f77081dc707d295f5764846088dcfbe738716b3bf6004029c64921d04556ac3e83e4622a9c1211615b71da21c7b21e554f4e60146b7ffd00401879c763ea5725a580059fc8b9be9dd07e58c00869964f2e0197f0fdc8128d8f004049c8847305d1c5547aa3c2d7ff960e1c6499c8b9010060e8b2f95548e016ea33004111e00ab65e4f30981b594a8b5f150e8f8903135a34d681b57df7058a0c504e95700409d6cdbcdbfb64410f16fa3d1415544ea26628502a958010397ebfba0c5c75a3f00411227331322bd0d2b2dcfd8cdefe9c7489a75e43e1ff9bd343e87bb4823e3abab50040962cd66bf00fa602fb15e755a6fc59af5f8bda2b4a0ffc27ac181887160d1b42004035e287bd77c8f581ee84312d73466751fe8e60cbe7033024343ed98ff59bb04a0040754044698726d9e2efd7aad521dafb4b49e7b3cb18fbe361978ec142b7e2fb3c00401a6516e0ee11f1be34b966770417f4ea83a0e258761e9ac24cd90a15458ef588
Decrypt with length of 1001: k]?%6+¨??h?«Cz??hS¿5Ç?²Ò,êM\+öK4.ç'?´½TNÊBót+ã,µ?Î??{LòÎ?7?ÛªÐ?#¾R,¬?É??´Ûvbu?a?T??GDÝÀ?¯?TØX¹?xåáEÛ1g5?SÄN´¨?;µó!?4ÿÎI??äd JÙ¶?bÿûýT"ÙÝ?ñVN?YÕjÎ?Ü!¬??åty¾?ÿZ?véoíâ³ò¾)uVÈÃp?Ó¾{ýiÿ±`-d??N?¢Â§ØíVªa2κþ?ÿÜ`ä?JÅ©ÊöAðµ'Nÿs?¾?4Orî$p'E2í²ÀÅ~?ð{C%R??ò?,üW÷&Î|Ï?k§¼?¤´ÿaé²QzißXh{_HÊO?ª4qQ6ÍVù[]A;üî¦??Wüð??fà¿%×iÏ)`åf·ô?ÓS-3ó7]??òÔðç5Ì^ì?ÿ¾y¦ú¦>*&?ªuºÖÅ?×c)k<¦õÊÇD??º"?Ëã2O)æ.{?§HD?k?kª K?g??´?È'ÿà3??£²ª?6?O¿?`¢?·?ÂC?fJT?ªÜ?7Äü?Q/pÔ?i~+{?-B?üÚI8¯£yÄÉ/yù\Þ!Ãå®N0¥??³B???L?¬ÿö÷Hrû½ï??dfÄìð?4D?!?¡\~þL¢â?¶r?¯s?£÷#Õ?ãwÔd»C|r?üöÏßÀaÃ???Q?/S (e:±µï1?ÚT2ªQEÓÚ!3PNw0³ââpIVwÀÖ?± ö{ÏDßo×ÞÃòÒÜ?T¡5?tÄU÷¾]ðwj?¿?Ï;?ØË¢±?꿽±Øuï÷?(ÕÐØ?³N@ek÷S?Ne»Ùy(`a¨?w.t3¤äáÒ¨î?ÓrÀÞ??8:tç¹¶+ê>¸Hù̪(Ä}u(?b%v????y2Î?8Ö(ßàZo*µs·?~èÒ'ìoX?}οÂt"?A·?G2ëý$ësb+ɱy?°HCo´8%礳|H·8ÍN-_^Nô?âò.1×óÙæ[çùT?'P55ýº?Ô??°:Çàã:Aím±J.?üϵdùî#UY?¾aiñöNô?·½wüÞÞµ®ÉhLÀ?ö¿n??îï4?Ý?´AZQên<}?"?ÖÁ?~ ¿d??謵Øïï)¾ä?6ô??¾F}u£væ¬ÇBð#?ò?{=Þ?_M×·??j2uÔ?¬ÕSAù?ê[Uf¦ÅòÝGÑXeC?3-?zx²Ö·>rS_8BµÿýeõÐlÐ`ßw,EÚþ\Ö°®??OÈ?¬I:j`"ÙA??lý¥?:Üè»ì* ?0ÖåÇ!ð×ÄU[¬±4<¯IP®F?ð?w}$2ö^
Teststring_Hash: C4986E723776679DD6E92B9F76EBAA1D2EA5B4DA
signature: 00411a49e748a1ec1a4256f34abc48e9e46e23a8c3fcc3241965a003d8627d6bf6c07004050f70dfb595514bc3718bec11aa70c3dc6e7ded3b834994a231daf00f3ca0b590040694fe5e27471c7a1743fc4271bc4c77e1a0fa9875a8b945e7af17a13b5990426
Checksign: C4986E723776679DD6E92B9F76EBAA1D2EA5B4DA
------------------------------------
right encryptions:11
right hashes:11
wrong encryptions:0
wrong hashes:0
------------------------------------
All tests with the source code are successful and so no more adoptions have been done.
These classes are build into main program with the restrictions (see "Difference to main program" ) named above!