-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSource.cpp
More file actions
36 lines (32 loc) · 15 KB
/
Source.cpp
File metadata and controls
36 lines (32 loc) · 15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include "Hex.h"
const char* v[]{
{
"01"
},
{
"e3a6f378fe30a413"
},
{
"2bbb42b920b7feb4e3962a1552cc390f"
},
{
"8a4768add4a9bd7b3f27461220ceae0218cf3322f4d2a980d1"
},
{
"6dce9a9ecb48b9da8aef51a89e7f7fc1a6a78966b7bac0ac5ba7ab18d92b616bb74537bf7eeb9bd3bdfb40a450747c3de2e6eecfb12763049148fa9134c7870ba80636fb21fc7134f92b0364f5d27deaca"
},
{
"715959dcb827455abfd43db718b70c2387923a99676a8b5a4a96c999e017c3781a2796338e142b9b1e4f01c7d4c02d06115d9f17e7fba69dc364b7cd4fa96a6a96bac5f36a33bd1b0279fa79e806db811301bab34f127112e6741cd8794c21682f396e84122c02c0b57aaf361a2f1e7cd4a613d36956f2a1faef832226a6f25a2bcc1a4e4ea602737e79a86734e4fedf9d7233e1fb70333349fc71131d5fe428d39d4fb9e84ac61da49e6e72fccc8492b690a143ce073cae19c470132820ffba6fd1982da6bf55a4701388c13b90b77d6726e563aac413fcb36f078a0d914cf847937a1252adb8f22afd7ebab8d7a089f85d88a7574fc2035f24bfe09559d2cba2097fd0b2bef5ed1a87d9c73d4a459cb05c11799c4f51ad640b1e7d88209a19ca5b2ecf8f98167f87d6204f9091b09fd84c0840426dc6e00c4daec9ae90aacc05b20f77b0e3228fbb15dbba7a53e97bb854f56312502b869d12f72dcf4f0cca9c36ab31df482204fc6a936fc338f616989d614cd1a087866081800fb205c8fdd70e8963e26e1dc893fdced833eae15ac04ed4624a07e3c89dc3d1d8205be44bfd63327782ff1bc2c8f7175c920eb22e7790d40d442b46349cff72f1e1f86a9e585c2cd387a025dae280f363a74f6f79078bebb586b4b8b2a45eecc0bd8661dd2e2201e1b9fb41f82bbfec553b522225b666a0c2d94b422afe08c5af7caad2f0c8dc3807e0b87a04e9dd899b16c2d219cd4a7b9c0598ea84f3248825e50ec4be6eb35aafc37fd5e66502529b0045883d935e05acd242baa8c9dbba8ac15a3f3167cfee402bf65c87e754d0bec1834b7952cbc55808f2ba7ec854e545d8364c30fd577c22e0c816cdb6fe8a6c202623b550b844096e4ff1ef3ab890c0f248f1a476738dbcaa9b0ba11c26090ee7d318d9d74e0828cd0267e1652e4462d73b38731b4da878511844ec5ff5d30adc3433cd2db49b1bedb2243d93df88934eb52986340a55bd9ce6c894c89272cac8f17b799a13854c960831ec0af2e4bb215ecbc509d51cf454ad9f839f256eb472b2f9c668934c2190ab95d51290e04216e02618e1d486834117d29f2cd84d32a41eb39add5b7a04a24558dff5e10591f6e04268062f1ad32bca68d2b6d199ab24ddb3df4394965c967b83f4f90cda0e8809289bbe0f604cda6e69028738d987bb98017be065299132f71cfb683ae8229600df9b529ce15616acde19e536962d31f7a358fdf7ba0b3f612edb8892b535e6706f4e0afd245aa62ccefe19f357074ea1a35ce172d1318460be7ea23dcbb042ffe19e2d5bb2be539541996b96a47cda3f0871d6fdf76dcb9dd6cbfd62b2f970553c7205dd11ece58f3fd2224705f49c78db7e22c0b226dac07daae32af07a381b88b1d8accb4a24c4d191883003d75df5236a0ee48dc57a70bc039abd0f9a64f9cd45efef6842d7d9febee376258ee55de81fe2910db073559abe6b4297c0ba96141592cf6e3bc879cf417c44f47ffc593384e6eebc508d181fc49ee10e56049b64090874679dbd4a4a029bc0f7136a910b816224210d906153fb7bc4fec308afc6099b05dacf7ff479ea8812b6b2f6ac78fe9d5ac45043d73f4c4a10ee6f8f7b41fd91aa503bd62064df8a63b9c56a5382e3e0b92e7f6f23ea9f52f067c260a7ddcd338d5048897612caeadb89b28c2d32187369e604dced5cdddc8af02445daa262c9d3625e629d8b94f1a1ade325e38f869e91744552dc9eec300611fd04bc99a29ba70ee5273ed723e4deadbefc1ca113a95a61ac9998b7b6968d52b566f6c976f02fdd45a100ff610eb912addb8171a8dbeb349f78caaf2256473cb433303bc6129356e7988c0a35b65b621788b9062e7d6d7588b91a8f17b75b56623311f57b47fc0231d489008623eb2864cc6d698bd707adce222f5e7f02f128282d42017bd892678c1ca0e93e9e92e9fb6f45a0a931e263d97cb2244180333b6ceb6b67b00d7c0f613979ce446f782f4639e8b56ed3251f118e4ae9457647169733332d012de38216f4bbb680dec481acf2ffafc404f969de22a0b6732f554212ce425d5582ee4615130eaada339f6895613197920e86caa8fe5b92b3f28645448441fe9652c6e5c45e1cb13ab5306b694f2774c037f3c9d7eb2486ed0601a9941cd819abe692e78d9f8ad388ada0129184894e35c869efd3b1a39909b4eff56c60aeb57c867bd2d79c0318ac6316e573c8fe2edb080fc204187fd3ef4478b233166cdaf179a930091e2d898e1fbb6d78e32e1b99410eccd3e8613c87fec3675007b990f20943888dedb02d1729b631089cc21d57b98d95a6e8f0ddba29f99c2dfb3ee0677c7163cad1350d2dc830b98cbc623cfdbab5a3e6e1d5bd6e0f41da31baa3d1381b5d482892642fb946518e6a0cb581748aad80fc9cb7e48cf6c4a7c40b8f6c4d2e2cbf0ff7e49da4e940370c5164f3a2719eb44ede3f5bfd27aa8e4eb7aab88efd0950e7ca5e5fd4fa263cd856169a70b9b0c546721529a7ea1a1437879dbde4cf1a8418d1797b33c02a2638e2747fc6a80a3d4b1fe05674873cc3e840108335ee87e20ad5defba885757c93bc26a98d88d5a4c4ac48eb4b453922c7adaa136ba079f3269d34e61a8f2ec651add320ab9f38801be2f7ef136d39b93d9514746c2e183dd2f3244573287e8dd97d23ed0a365c5bb789926ab6476311b3bff6ae22e08b4a779d561f9a968d5795f4c017909469bc0069c4651b1be0b18ff4f6ca73fdfba27e64717c772182afecd94fa62703862c5e4932e62a31d8213afcbfcf49cf8fcb4d101e65f213861a46f67ba3b6c9db3239f287f8cbd072ea1d9ff7c58b9c704f4e6904e0f3b2c0220b11e915252f9156f92d69a0e642d6939fa547b421adc5b6e836ccf86248594ea4f344045c7dd02006c081e863cd2da427d556a5f24ab78682411db2271b78267764327942fbbf19c97376d72aba9fa61ff8cd9fe8ba6e498650a0182a734633ed2c5b7ac1f187c8a810f07524515320eed653abea4711865b2cfc31549aebfc6f126912c0a64fb50c5d99cb37d9729afc3791d0e137c8c6699dda058bd78e0a63df0146286340695e2416e04c9c239cb1e32e16b3d3bd90186be29db87157e3325bcd20df70826b042b12bd4ce08faf75a1d3854963156cd05dbb00c4b16f11454e75a7ce153c43683b33681deedd5ab03b28268b2ffbe2f93c0e3695dffe1c0380a1e3dd9a977af01b21eba90e3626ca77d400617e957bfbd0824815432b8ad3b9f8ddf546ba970695854ed687c29a2b1e801bb49a0bbe3ee1c03d2a241fe51fc0229cfc62cd22116f07978ea3a83e3bf8d3806ac986342b376f1dbecc02b44e5ec828dc36faa479724ed0b8a8119a63cc76366d542e63289938f1b881fb80c85b928a7b0a67a4a56603003cdf243709641045a3832ad59ed1c3c0008c32d0f47f27c9c3263caaff13cd3002900a9c97864ab6f69da312f6a5b7927e35d02c3c9130ed9ad1a23eee405567f103ea5173fbcc904decc0a096debd6f1ac3fd1c075b54ffea55c1e9dab743adf37feddf078a3ddb8fb6aa09e8447c60bc80e029bea33c069af8c0322b3e3e0aef4e3bcdb9fd46a0a64488d5529e9d6c4cb2a2dac7328f0a9203c7a24a9eee87ceb6fba3f31b8ee679de838a3eb6c79cb2a26ab88bd0f614babe00bf9d9ffc2b760056ea1cabbeb5f0cbc3b21352a3f7d698614a7244192afa7091148d0810ffd07373299b767d15f3556fd4393bd885a0dbaf18e5589f573a62a22683a3d109c4597be8da44740f6ac2af7918390f4ef9b57baa4ad231a062dd5c7fe536e8533bf895af40dc4aaa3d5bad281813f05bc76ced890a7b760f5a27e6a61c8afce51b9aea073508a8ef55688e69a19322b3f4492f3c8e1b17ab0a8869239167b6c54e85a177218e36e498317dc41b7f4e5e6694664b3d7abb7c5a4a0d7fab94befdba01e3886d379b93effda0c2eea01b650795bd3f7e5f0b8b33b4f941d1dbbb954958d8c07fcb800442161fea82be32cfbd945a9ebb94aedf7b0d56f16d025693e2d0a7aac0128c3e7ac223c53fa13aa472d865f35bdf4d801c9e4b17e6d236016cb379cb98d468497d4ad4d98e10dcec0daa07c3c6099077fcaf013ca41303e6d14775ad70d8bb2d35f659b1d5d4c0b07652679863da1ecb0587a0e70f8d674bf8d5c4d7aee72ef2890ddbd27db58df89518aff99c19a0841d704fa18f070837c9a48dd1bcc969a160d981c6ef7becca5243046fd890bdab2eb036f18c4b8eb22cfef92400461342a4a0741492ee8430951d908180051e471f907e5f6e1fa2c509293057e425d4db3cabdb44cdd6fe3146ec7bb7fa416b60d8584f739d4cec76486e59f2ce3056761042dfde0afa01d54df9ed99af0c4bff4150d0b6819a13cfd1159c7d282d3e1a08aca86bb0233625928c0db0072d662a42c02aaf82d0c0d88c66228159e537d00c335d7327194428fded03836b6e65ecc3ef84e709b89a9862a91386c920e79f041d267cd6a4d5e77763f89a4195f04aac2607e47c184a1739259712e0a6f68fd8b32c10278c8e68e637147ef26bae4ee5addb3045b9775dfb23d4af063e0da8703d97b6819819b534b27eb6e7b848ff56cc2753ca63ca738eebf5e4a3b2d4f3b4038ff74c921ed647195fca87446565e8cb13d375ddea60dcc520391fc8f2778d4c3b59f14044d109b7de4339d6ae8981f1c93aadf1812ccbf97e37e249103ce162c366d66a34b060d324a86738cb720a876e0fd96534e045ce366554fcd54b9a8b50a664da967b36b45881783063286cd52ddb6302ad82318d704cdeabeaab9e100aa00357113872a3a357d4871eb48d232c25b290941d767f5672e61cf664d73918dc1ca84df1fce82db0e305a61d57b993752ed790b6fee90d61d618a27f2b4da2e21596f3adbccb1d170c71a06bb1de8b533f9e4a57b016c0a1146796038496d23b58e9ab759a949b11ba94b7a782dc3c484daf6a07744d95b80ad179f8c95ace6e4b691c507e8ad128523791d8b4f9cddbc0d097cf32d5b4301e1ef367e2e2be0358ddef4650f6e5e33d20d6062e7e669500ca79b5d2f74691ba15ae57b676cb82e60fcb5ff820ffcae3182f39d8b331fd7565b9c43dfb736145804fd02f5d1d745cc559a45e504866ace6447a9adf539b8868ff015929622a272581da34e1db6124c8411c6acee73e0154bcd05c4bf7f79f9df2760fc83c73c7ccea7eae482dcfa5e02acf05e105db48283f440640439a24ca3b2a482228c58f3f32c383db3c4847d4bcc615d3cac3eb2b77dd80045f0b7db88225ea7d4fa7e64502b29ce23053726ea00883ea5d80502509a3b2df74d2142f6e70de22d9a134a50251e1a531798e747e9d386fe79ae1dea09e851baa784ff7a7120d59ed3be228d9aa3a6b654003affd8e1ba98f97041de2d7dfff288498d7d6135e6ab3fe56962fc5907ef7333ae7c6e213e27e0123ac7755aad2177e5698a37cb89c5471f9b7aea8c9240dd799e481a10a60db5fa5510820ccdd9eeef002b5540538f81d3352fc5dcfa6d0b6896dd5d4e76dcf3af2d53d412f68e65dd0ddb5a32c86c6886d31c1ec884c6757734c6a82924f821972ffbdbfb9ba17535df14a7115cee73c0d1aa65bde5dfa42bd47e9b3f24e1b848d9931a2541d5856ff061dc7a85883c17dd652b4b823b300d127fa6ff1b4c303ab6940f3e7d7d1f01ee3d5accd6bc19d232d6ffffde4b81815b344bf76c7a11f343993b95931aba822511b296c51c95a69e6a24297e93112f3b570aa6ad1de5f90cfd1fc94730e06741897456d50c47fb6cb95876d7a4777d2f32539b318a14c27f3a3c47fe521937a00f008b8b1da9571a2f0d567de21cd19370c733ae5136c616fb11a02cf0dd69dd1cf7a35bc322304345a356d5fe99f3247cd60e77f5b4aa70aa2050578f9584552dba4cdb8f5b1d6497cad6743c47284eb0f08a330a36b5f8b1f8e70290e9fdb4cbd8d66ef4ac84fa9fe483dd3dcd077ed7a74543e1059f3bbcfbc2b2a7435c5871c3de9a75aefd71b870bd85759407314b7abe3f2cc9bc9625b971fc352a26dcba1bd3f294caed668bf001e17634be0276eb53994ffb94b486a27323cd06c39e0f4144ebd498db458502ef85a207726ef469b3c6cd03bdf34a5754ddc181d938dbc4a00aa7915d9b3df9d4e6abb4fad34e864d6c168aaefefb38859ec4f3ce29ba1683c3a03cdae411756098d5a58debdfc18eeddef8ee2423e683cb4a0528ed34d75e9b3103d99ca9d600f0c261c1f5429c06c068c6d20f2eb1ee07c31e6fffa6579f15ec7ee03151cc34a2f4622d9bf1762378567d111ca64b12b8c2a809cdb947d3b83516755eb3a88a13de2f275c76f0939a2a9411d915129072bb4a9cf3d8087af6ad530f5149fb6fb8024155934d9ba59a47a46ac0e598f5ba3f7e700e7d1a2355a7cd24d58f455423e3212efcefc7f7fd50167260a25ea0f3a1ac595a230d3b59d6ed4c37fe16e5dc034719e5d815f937b672cf34d5d420a3945c8f73645241779d2bec1500d07344e53bbcda80f637edfd31d7b9fa89f36e8a27a8e6bb79c4337d019ae94212baf2fb677e6784f9126496ec326c8ae0a7a8e5662c2092e43221e926cf213c4dfb6ad872d5095e9f3740060a55d8f188abe748c08fcd754229a783d3ff5959f2d310eeb6573c78491504ed04b86be8e28eae36af5a29ece40948bfc1b1ee25a1c089b0ca8b7d6c871a379e63e0b1bb7ebe72118b01e2647a6f9a1f586d7c19cb4239c127d84895f9d53cacc05526f3cdb9b76bfc1d637655aaf00500a88fc0dfe6a59256d42a9ee1d4a89a728c581c400ef2c87b13499d066a0f0362f97595601c6196bff59fe20f76efea230ca1bf863cb8a97079e1331d1b2bbcf7c6da11fc61d260fbb31509a35a971e2a4cb03800b18d7184b7e6f30a4cfa84279729b0f5359c63729326707dfe229920c2f020300bc5c31063b7374e6defeb8ae0e11cfb260420cd2c50b0dfb016fd8f15ee02a4ba1610bbf3de8a69fc70658a4aac907eb1ce2b53d50035493ed8bdcd9c0659cf3ad2dcdfeec956dd872084be2ac8d5e0473ed5af23d1885ae90c5c74fbd590100ca0aa04bb0447298c74bb8f07e237c074fad257af2124855d164c1d8bd83037bdf3eac2ff1bb5de7ae19c85786530afb97683c5cd9b9448f98b2f1fe28ac486bd412183117c3d5cd0fb8a29e2ee7b0e93367c72058d42264cdf58048669c78d891ce0dda8a248253d271704ddda515d80af2ef4fd92d89dc5976963edf1b3ccafdbab2b0b2a60d80df8c57edfa57e2d00650db70c38a2200227d5969fbf13c4a021e303df8111e5d1e518105efc3beda0ecbb50b7eb495d71152f45023e51f5f8741ae09c22c5cf07708161d23b252fc0ba9a2a8727389690e3c8d7cbdc18d12756c559a79c07043d3f83dbdfeeb4640e333ccd0078ea7bf02844d73334b306ab2e74d7a8695015e186a1f6ee83841ae7fb15b0aa5cf96e0d3735bbfeb4cad6f27fabd314f73b84730a6e4b7495feb4dc76b77dfb4fcfed46b4fe0e74f8baf29bcedcd453e223d0801f4b3218929ed25a3a846d69cde89a4b0600374c5d2dca15a07a740ba6937a9759cb433105eef3efcb2f377c53ddd578cf0ededb7e7dcdee79170aa2a124f3073e5117547c698a1b8cfa44a97e1a2f5e645c5da8c9358e84cd35309f8e32ca7e219ef6f94289155c14882d87b918187a5a8b4c4ac9ef8c8721576e78ba57715ac7e79aa604e8162fd65b4a8d7172114b361e2327fd06385409f01cb4b1fd783b85cd4ad14fe11d1566d624214392ca4f7b876ac6df142279db81d3ea01bf5f8eefd2b001601e9a9b3aab62f9bc0474059f598badec83cb773aaf2c7f25f787c36a8a42cd01fb0f2fb62d6f6d3731ceec15f72e53a1efa3ba9bba7eea9b5091778a467b8a81f0fb418deea1f231c53b8173f29b4e9bb23be2734643b2de350d29c3a9d2c08cbadf8f1661b33f58194a643dde8b053676045d55d5337e7b1f4b48ab26e1157e933c56e4190b9b06c86bf2e81d55fe0ea59da9b7d99693de99ec62b5401edfd42482477b97339bba3d10bbe73184bf90bb58461dd61599851f50f65677f4b629e951cf414e93b80ee1e92dcfadafc04931d4c0fc6d19061b3a29721350fb0eec5c1b5cd9b1c486617155d716043f96b4b38388d7e1195fed54c664804daa6097e75f7eb9634e7d5e45d7363eb7aca94f8af53c34d4af0d97f9c85c01d08b41b9259eb344d58a1351f9fdc9ce4a8f7e96529a2997da42a587b39fb73c8c0638cca14989107b1fdef8e82a10293f408d0594f2ff85546cae590cdd0474d2a39c4ec4f07ea0e678369faafc97f3f8786b39bc901c61c5958e785fd0c26f36fc02bc0b13e28a8a1bb0c2acd5cfa3188f9f9f43e20ed1b045dc62373b8f703b7802910e347311e872e40e885635ab220e70a2c5695539a7060e932d7dca2c5290027a28c2aefb843636efa7fe4890877da4e0bba67e2e0c4e9ba7ad07e0e81eec88b3f55ed49bdfae2fc2962ea6e7bb4592d59129e80372980a0c207a8257f2d60bfafe69a2677d734543dd67af15500ed0fdd054317e5c7ae03d42461ce060f5129bae638702cffe0dcfe859efadc821c5c603c5c8e33c5fa4b76ceb2f160bc213328fed00e259d6efe34145d715a63717caa5ff4cd694cede171ada177d35b5b44c0d569e8aad76721a62ec03e15ca71d7831510bccf830d2b8c6a3946a81584c34b140be602d552ac1d79cd4a56e0a6d5b306ba43ad93e59291ad7f472711261a9262bef077c0b709619d8e7b64cc97df01dbf94a4aa3fa7f461d7d629778c8b05a688bee4fc01e9f3a430bba89b7cc5b363cd6b9efdcd65875633a804271f3ed6ecd79c8d3fc10d670134bf00bc9ceb31ad05778e4660086e427be876e252e39953a91664b9d1416cab456033329244d7540876f716800725c10126164bb01fc9657dab0ffcab3c711cf34dd490056930f336b87de0a5f83a4c63df46c5cf49e3acb5c8f36ac74510d0bee649575edebb0520da67276a42086f2472acd309087493f1fe93a6bdf1d86118a825eb170bf1f4574b576d157b3c83c39e9d15e5c208b5a2ca8512e7c914488131eeedc677625b3a89d324600a3334b1a1bbe0fe1cfc7c58ab2c41dd4160e198e1f8b1d5a788a45b244eefa28588fc8f2a7dd6aa5fdc72741f1db626e15ae6c056f7e9cd22d16a29994f218563aa45ac9757698321351295a4bdd22d2f4ea287ff50f8257fd9072657485c613b139aaa86dd1c010772e73dcaa1488891d8bf5059985f76f50c25f1ecbf12ce625185f9677350bc59326accff5c6b91af6597d9e432a22a48e720fcd837c7457fe07229c7beca1dbce007c3b143ce00de91b6552db442c7d1f692a7a836fc3eea4cf9bc1613ca9da8f868d29eebe23eb5c9b5829491c3c826b6f592bb31244347f38710d116e4b48407e84a06d93aa3bb99ffc2c75fa7b3cdb4c44eafbac1cb0f7094d8873c9b1af48b10ca978059e8567f0f96248251132d5c792be438776eb750cd63b709700960fe7cb4bf75a2752ce56f8d4a8e725ecc2a9ebb073e9786b5f07b52dee1e6386fde7698ed3db6c285698a1887e86dff30bbaf9c6731b4aba1fc39166d6a800067a7b8f7af2d0969267809b88b34b68ce16c2610a2b6515601b0813ef117bff9eee69e5183d81cc1569d48fdc2d7ee8054d89ce84840e01e3bd9de3cf86df89d6c17a126f9c35373bc45d248ad667862117d6e63b646035cd6c4ca80e1c1ec6375b76bf87f836ff8be0e3039c954e6ba9db735137b5a1daa58fdb0ab5bd7fdd482425936937ca4b8d262ed319517abf250326b8805d1a17f49013b3cb5049f691854f371c433a43cafc053d0af434a91ef6b8c31f46131541d6bc4858bcc53b9be4bb52a802ce11c9cb31e97665c4511b1cf1191b56d3fb14c99e7465eb3bd2edaa328d165ecdda12fc7b7e658c72e0a4dd98637c77a4f2f5d180ddf8c4f2e310407c906d3e81c92ef5a8a5e051867e41a177484a90cc226d562c2b1c2f34978a0c6102b5893003a4208305ed9c47527bd054718e8894b203c06807d6144715e578a98bf72923b3fce4d3479755fe85d9d2f885504944cb4077fd19305b7486a8eb1bd43a05a2ffbfa85f12e364f33ee40f2b2d96ba2494abe3b30831ed03125ccd80858605f40f74d6f00fdbb16ea622f0b4116ac37c36cc6d517ce1b03ce08885a046e311630ca3d54ee58625b7e51ddb5dd8d34c93d82b7b01"
}
};
int main()
{
// x64 only
for (unsigned int i = 0; i < sizeof v >> 3; i++) {
size_t insize = std::strlen(v[i]);
auto binary = ony::hex_to_bin(v[i], insize);
std::cout << "[HEX]:[" << i << "] " << (std::memcmp(ony::bin_to_hex(binary.get(), insize >> 1).get(), v[i], insize) == 0 ? "OK" : "FAILED") << std::endl;
}
return 0;
}