one_gadget 1.10.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (927) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +349 -0
  3. data/README.md +386 -248
  4. data/lib/one_gadget/abi.rb +86 -3
  5. data/lib/one_gadget/builds/libc-2.19-cf699a15caae64f50311fc4655b86dc39a479789.rb +269 -7
  6. data/lib/one_gadget/builds/libc-2.19-fd51b20e670e9a9f60dc3b06dc9761fb08c9358b.rb +118 -10
  7. data/lib/one_gadget/builds/libc-2.23-60131540dadc6796cab33388349e6e4e68692053.rb +230 -9
  8. data/lib/one_gadget/builds/libc-2.23-679ad41a6bc9e718a11a36cf9879cac97197e565.rb +82 -4
  9. data/lib/one_gadget/builds/libc-2.23-926eb99d49cab2e5622af38ab07395f5b32035e9.rb +147 -6
  10. data/lib/one_gadget/builds/libc-2.23-991d173c6b9056712812d98507cbe95f937db7cf.rb +133 -0
  11. data/lib/one_gadget/builds/libc-2.24-8cba3297f538691eb1875be62986993c004f3f4d.rb +120 -5
  12. data/lib/one_gadget/builds/libc-2.24-fd0655c4d2073eda4235084e1d0e558f0251be8a.rb +67 -7
  13. data/lib/one_gadget/builds/libc-2.27-53f40c1d2f3739ae017dcdcef1a17314786e3709.rb +134 -5
  14. data/lib/one_gadget/builds/libc-2.27-63b3d43ad45e1b0f601848c65b067f9e9b40528b.rb +154 -4
  15. data/lib/one_gadget/builds/libc-2.27-8c2d375f8d23a7b58de23a60b37bef2d80b23aef.rb +167 -0
  16. data/lib/one_gadget/builds/libc-2.27-b417c0ba7cc5cf06d1d1bed6652cedb9253c60d0.rb +198 -8
  17. data/lib/one_gadget/builds/libc-2.31-00537087f0a4c4381deb83f49cc19e6abfd47a12.rb +68 -0
  18. data/lib/one_gadget/builds/libc-2.31-5792732f783158c66fb4f3756458ca24e46e827d.rb +308 -0
  19. data/lib/one_gadget/builds/libc-2.31-749e6d13e587d608128a097381cd44b9aca59927.rb +416 -0
  20. data/lib/one_gadget/builds/libc-2.31-93b46e0027747153e336c3fd9431ce9a5d82ad00.rb +563 -0
  21. data/lib/one_gadget/builds/libc-2.31-9fdb74e7b217d06c93172a8243f8547f947ee6d1.rb +217 -31
  22. data/lib/one_gadget/builds/libc-2.31-aa18dedb2aa800a743aac3bb546b8bd5816dbca6.rb +278 -0
  23. data/lib/one_gadget/builds/libc-2.35-1a0246cddde3e301e0cd5a85630aa26e89cb34b5.rb +83 -0
  24. data/lib/one_gadget/builds/libc-2.35-22ca0a83a4004122e30a69b597be96e134068616.rb +263 -0
  25. data/lib/one_gadget/builds/libc-2.35-4a81130bc30ded618f1edc030ecc5439e066dc68.rb +248 -0
  26. data/lib/one_gadget/builds/libc-2.35-891c1403437a4e30e684e0c8e34b87a09e4298e5.rb +434 -0
  27. data/lib/one_gadget/builds/libc-2.35-a91d1bc05ce8f54989de1172c24b2b736378901f.rb +221 -0
  28. data/lib/one_gadget/builds/libc-2.39-328820b908de8ea1ef79afa8995e302e819163d7.rb +174 -0
  29. data/lib/one_gadget/builds/libc-2.39-54ae5337044aaabab70d65e0c3444f7e4735e059.rb +291 -0
  30. data/lib/one_gadget/builds/libc-2.39-70d6616bcfd43eaa73962220df98dd9c82ca6687.rb +282 -0
  31. data/lib/one_gadget/builds/libc-2.39-a1d1cf4badf1f5dfe57ff1d17bd692ccc6fcd5c5.rb +531 -0
  32. data/lib/one_gadget/builds/libc-2.39-a7e93008cd7dad7a713e3eaf1f9dec78ce7c68a6.rb +66 -0
  33. data/lib/one_gadget/builds/libc-2.39-cd8f5a207dd67aea370d2b471a54c3e56f44ab18.rb +531 -0
  34. data/lib/one_gadget/builds/libc-2.39-f5b510cd91b956148e885994f55a0e476462bf92.rb +282 -0
  35. data/lib/one_gadget/builds/libc-2.43-7a08e84aa7f1e0bd80a7da6227c3a006c3ff327d.rb +75 -0
  36. data/lib/one_gadget/builds/libc-2.43-8c7af7f227b3871d6afba752cbb617f317023de5.rb +279 -0
  37. data/lib/one_gadget/builds/libc-2.43-90ebd03ae9d9f42b23b4eb82fdf70352cf744198.rb +96 -0
  38. data/lib/one_gadget/builds/libc-2.43-b50ceafbd17dc6bceee344a66671c7eaa152bef4.rb +462 -0
  39. data/lib/one_gadget/cli.rb +13 -12
  40. data/lib/one_gadget/emulators/aarch64.rb +60 -78
  41. data/lib/one_gadget/emulators/amd64.rb +49 -2
  42. data/lib/one_gadget/emulators/arm.rb +315 -0
  43. data/lib/one_gadget/emulators/arm_family.rb +175 -0
  44. data/lib/one_gadget/emulators/conditional.rb +354 -0
  45. data/lib/one_gadget/emulators/constraints.rb +269 -0
  46. data/lib/one_gadget/emulators/data_processing.rb +167 -0
  47. data/lib/one_gadget/emulators/i386.rb +6 -8
  48. data/lib/one_gadget/emulators/instruction.rb +29 -5
  49. data/lib/one_gadget/emulators/lambda.rb +59 -8
  50. data/lib/one_gadget/emulators/mips.rb +289 -0
  51. data/lib/one_gadget/emulators/processor.rb +187 -44
  52. data/lib/one_gadget/emulators/register_file.rb +106 -0
  53. data/lib/one_gadget/emulators/riscv64.rb +265 -0
  54. data/lib/one_gadget/emulators/safe_calls.rb +62 -0
  55. data/lib/one_gadget/emulators/tracked_memory.rb +209 -0
  56. data/lib/one_gadget/emulators/x86.rb +180 -78
  57. data/lib/one_gadget/error.rb +12 -0
  58. data/lib/one_gadget/fetchers/aarch64.rb +28 -20
  59. data/lib/one_gadget/fetchers/amd64.rb +2 -53
  60. data/lib/one_gadget/fetchers/argument_resolution.rb +340 -0
  61. data/lib/one_gadget/fetchers/arm.rb +311 -0
  62. data/lib/one_gadget/fetchers/base.rb +364 -223
  63. data/lib/one_gadget/fetchers/candidate_walk.rb +150 -0
  64. data/lib/one_gadget/fetchers/disassembly.rb +252 -0
  65. data/lib/one_gadget/fetchers/dynamic_symbols.rb +104 -0
  66. data/lib/one_gadget/fetchers/i386.rb +32 -14
  67. data/lib/one_gadget/fetchers/mips.rb +478 -0
  68. data/lib/one_gadget/fetchers/objdump.rb +25 -3
  69. data/lib/one_gadget/fetchers/riscv64.rb +78 -0
  70. data/lib/one_gadget/fetchers/x86.rb +60 -4
  71. data/lib/one_gadget/fetchers.rb +115 -0
  72. data/lib/one_gadget/gadget.rb +335 -42
  73. data/lib/one_gadget/helper.rb +68 -40
  74. data/lib/one_gadget/logger.rb +4 -1
  75. data/lib/one_gadget/one_gadget.rb +26 -11
  76. data/lib/one_gadget/version.rb +1 -1
  77. data/lib/one_gadget.rb +1 -1
  78. metadata +68 -862
  79. data/lib/one_gadget/builds/libc-2.19-01e14462fc6097604edd54a2ee63664c65b2c12b.rb +0 -49
  80. data/lib/one_gadget/builds/libc-2.19-01e23c38126dad7db569b176808a7c54db64a086.rb +0 -47
  81. data/lib/one_gadget/builds/libc-2.19-02093f433808b294939b7a84c436c9eb4ec7f084.rb +0 -45
  82. data/lib/one_gadget/builds/libc-2.19-0301225d38bb881df8962a45d8c7f97449628511.rb +0 -50
  83. data/lib/one_gadget/builds/libc-2.19-036830b8f13a440ab4f419e46889b60e6e2b4211.rb +0 -49
  84. data/lib/one_gadget/builds/libc-2.19-03913aa050d557a99cc18f7b10e35f06e7c9265e.rb +0 -47
  85. data/lib/one_gadget/builds/libc-2.19-05438cea9c1f9b3bbca9d9718319ee3742937f2e.rb +0 -49
  86. data/lib/one_gadget/builds/libc-2.19-05d284a054b0c444fe40e91b25155a637b5cd35b.rb +0 -50
  87. data/lib/one_gadget/builds/libc-2.19-081d1ade5e735e7bbd0d2c1655a1eb7a0ab546ad.rb +0 -50
  88. data/lib/one_gadget/builds/libc-2.19-09aa28fd1054ee91085a7e13da58891c2d22058d.rb +0 -46
  89. data/lib/one_gadget/builds/libc-2.19-0b3a9eb5ffbd93527a046585e2eb0c8ae804498b.rb +0 -50
  90. data/lib/one_gadget/builds/libc-2.19-0ca781d9dae5d7689f112aa047b949ba253a1a24.rb +0 -50
  91. data/lib/one_gadget/builds/libc-2.19-0cfe51d12d5ffdc0b80469a74e6e5afb8130cafb.rb +0 -47
  92. data/lib/one_gadget/builds/libc-2.19-0dd7691bd47c4270c2ce9343dff1fbe0e27ad9f3.rb +0 -45
  93. data/lib/one_gadget/builds/libc-2.19-0e1a9dd2ea0a174b53ad15979b049628cb2d7fd0.rb +0 -50
  94. data/lib/one_gadget/builds/libc-2.19-0fe755222a275227e03414bf80fe98560038cf7e.rb +0 -50
  95. data/lib/one_gadget/builds/libc-2.19-10c913aa6554f3128781afb7846ac481b64c10b6.rb +0 -45
  96. data/lib/one_gadget/builds/libc-2.19-1142f4753ddff69c217e1e539272eaaf7d75da4c.rb +0 -50
  97. data/lib/one_gadget/builds/libc-2.19-12d7f074b08cab569614830552b5fe8a32707295.rb +0 -47
  98. data/lib/one_gadget/builds/libc-2.19-145bd51d758bf9c3e3b45949a2023cbaa0941e37.rb +0 -47
  99. data/lib/one_gadget/builds/libc-2.19-15b6f6d06e3435a22c15398ce99c3d649112f576.rb +0 -47
  100. data/lib/one_gadget/builds/libc-2.19-15c42742a61d7b2fe40dca9ca659a8f8f8ffea32.rb +0 -47
  101. data/lib/one_gadget/builds/libc-2.19-1606a4f3d8e807c5bf9b273ab202901115aa7a1e.rb +0 -49
  102. data/lib/one_gadget/builds/libc-2.19-17e8467dfe433c3622e6874d5795f6ac8edc8951.rb +0 -50
  103. data/lib/one_gadget/builds/libc-2.19-1d7ac0a26e8dd7a9b8443fe4a5f59e46ee16ce74.rb +0 -45
  104. data/lib/one_gadget/builds/libc-2.19-1dae2bc5818d22b565ed441211d0e2df6e942c25.rb +0 -45
  105. data/lib/one_gadget/builds/libc-2.19-1db2291c040579630f551b3568d0bc8758aa25d7.rb +0 -47
  106. data/lib/one_gadget/builds/libc-2.19-1dcad38451d0f4e339ac91079d6a20e40015d7f4.rb +0 -49
  107. data/lib/one_gadget/builds/libc-2.19-20f983ed5f4a8d177a9839b4abe44ffa35e1eade.rb +0 -49
  108. data/lib/one_gadget/builds/libc-2.19-21f20ffd821a693d32e258aa6a64e6bde5c5bdaf.rb +0 -45
  109. data/lib/one_gadget/builds/libc-2.19-22325505e6f257ab00ca32d46cd444c903d5dc89.rb +0 -50
  110. data/lib/one_gadget/builds/libc-2.19-22ea459c5bf13179544fc0bc92372ebe52792f53.rb +0 -49
  111. data/lib/one_gadget/builds/libc-2.19-267899ea9a83d7e5bd2ae3e53943cd57da6a01e7.rb +0 -47
  112. data/lib/one_gadget/builds/libc-2.19-26d70c7187d46c01bea7c22e8428fd6569d0f29c.rb +0 -50
  113. data/lib/one_gadget/builds/libc-2.19-27ae159e7958021d9c784daa60ac582aeb2e380c.rb +0 -50
  114. data/lib/one_gadget/builds/libc-2.19-286f68616b18ea86201b1bd81c4e39ab441a876f.rb +0 -50
  115. data/lib/one_gadget/builds/libc-2.19-29ad0fae22588909ae24075cf3d30123d3563a3c.rb +0 -46
  116. data/lib/one_gadget/builds/libc-2.19-29c9abe596db30c86fe28d30dc275485c7e3f240.rb +0 -50
  117. data/lib/one_gadget/builds/libc-2.19-2aebf61fd92ce11ccbc35f4f5e1da8843415ff2f.rb +0 -47
  118. data/lib/one_gadget/builds/libc-2.19-2b7794adc3efbe94dd7f17bb28382f42415ef32c.rb +0 -45
  119. data/lib/one_gadget/builds/libc-2.19-2bb9296b7b2843ef007f7de1b2995bc33ec8294d.rb +0 -50
  120. data/lib/one_gadget/builds/libc-2.19-2bba9d358bac63ff81597767b5bc229316bd12e0.rb +0 -47
  121. data/lib/one_gadget/builds/libc-2.19-2dad3f021a0e10d56a36a3e6e83c641013bb8d0d.rb +0 -47
  122. data/lib/one_gadget/builds/libc-2.19-2dc3a77a63a29cdfce5000c5e562da4574560802.rb +0 -49
  123. data/lib/one_gadget/builds/libc-2.19-2ee2c632ffc91afb8662573f6870c70a03fecaad.rb +0 -45
  124. data/lib/one_gadget/builds/libc-2.19-2fc2eb810e87cbb9d2a9c79bb1aa31c3b84330c0.rb +0 -49
  125. data/lib/one_gadget/builds/libc-2.19-309303fe5b44867525d535b4b8df1d9890128765.rb +0 -47
  126. data/lib/one_gadget/builds/libc-2.19-30c94dc66a1fe95180c3d68d2b89e576d5ae213c.rb +0 -50
  127. data/lib/one_gadget/builds/libc-2.19-30d456d1974436ca70141610c206bbd4e9ac127f.rb +0 -50
  128. data/lib/one_gadget/builds/libc-2.19-30dfa78b54091b3517212562fbe71c82031135df.rb +0 -50
  129. data/lib/one_gadget/builds/libc-2.19-319d6e67364b59468f00c62003e31f9698590885.rb +0 -50
  130. data/lib/one_gadget/builds/libc-2.19-325f373d48d6e3eb950fb4a1841cee80adf696e4.rb +0 -50
  131. data/lib/one_gadget/builds/libc-2.19-335b30edc15f874730295594b30528ba178aeca7.rb +0 -46
  132. data/lib/one_gadget/builds/libc-2.19-33adc3316a61d4db3e78e167be8f2d1c8b4a0474.rb +0 -50
  133. data/lib/one_gadget/builds/libc-2.19-34eca1b0e54755d19a70d3a74b744911f746902a.rb +0 -50
  134. data/lib/one_gadget/builds/libc-2.19-35597c5d9140178626b2989b0f3049c825f17249.rb +0 -49
  135. data/lib/one_gadget/builds/libc-2.19-3565b3bf199d386bd0188a3690135b2ef82a559e.rb +0 -45
  136. data/lib/one_gadget/builds/libc-2.19-365c74dde459303730e276b4d6022f1eacda06fd.rb +0 -49
  137. data/lib/one_gadget/builds/libc-2.19-3691e2c3b9f75fbaf99c93f201c86a2df07a98d2.rb +0 -50
  138. data/lib/one_gadget/builds/libc-2.19-3701aa1820d0a1dc12ac27ffde0ca8c63c50ab4a.rb +0 -50
  139. data/lib/one_gadget/builds/libc-2.19-3883c7733b2a0819e0c7c2dcbadfdac26e0e2b72.rb +0 -45
  140. data/lib/one_gadget/builds/libc-2.19-395c995bb2028f96efb60a6ebce75ed51d58c0b0.rb +0 -45
  141. data/lib/one_gadget/builds/libc-2.19-39612ce36adeb6f7e92658cd62c737bc3a260586.rb +0 -49
  142. data/lib/one_gadget/builds/libc-2.19-397c84e78c14cbffba39a48184db482211df9fb3.rb +0 -41
  143. data/lib/one_gadget/builds/libc-2.19-39f403e178f6c4db89f200bae5afd6c55f61e34b.rb +0 -49
  144. data/lib/one_gadget/builds/libc-2.19-3bbdc31d826a2bd8af0919d958620342c295c557.rb +0 -47
  145. data/lib/one_gadget/builds/libc-2.19-3ea89e2234c5203ef245cd4146b515794079ceac.rb +0 -50
  146. data/lib/one_gadget/builds/libc-2.19-3f8df0a32477b9b5c8521116e4d554f4dd784e9c.rb +0 -47
  147. data/lib/one_gadget/builds/libc-2.19-40410c37ab2b3867bcc1efa841c4bd990bbaced6.rb +0 -47
  148. data/lib/one_gadget/builds/libc-2.19-40443517ebed72833c0cea4364db0346c422be75.rb +0 -50
  149. data/lib/one_gadget/builds/libc-2.19-410c538cbb80e04ba67f8f93ead7c915cb8b151e.rb +0 -50
  150. data/lib/one_gadget/builds/libc-2.19-410c5d16e862678b3263a8250ad936b99554050c.rb +0 -50
  151. data/lib/one_gadget/builds/libc-2.19-42150628cea5ef0a4f7f48267f0d6fd206d7bef4.rb +0 -50
  152. data/lib/one_gadget/builds/libc-2.19-4315ee2103b2f1797d8d18ef03714dbdc4417095.rb +0 -45
  153. data/lib/one_gadget/builds/libc-2.19-4360063303905bf941489398b5601c5e2bc6c3a7.rb +0 -47
  154. data/lib/one_gadget/builds/libc-2.19-441d0bc3f372750187a7cc29528fca0f2fa4297d.rb +0 -45
  155. data/lib/one_gadget/builds/libc-2.19-444c5eaa7cb665ed9b90d3edc47e07c9eeb22c49.rb +0 -50
  156. data/lib/one_gadget/builds/libc-2.19-458c7913f032820ce7610496892f79a4779b0224.rb +0 -50
  157. data/lib/one_gadget/builds/libc-2.19-460355a265c134c0c801820ab5e80e37e2cd9b00.rb +0 -45
  158. data/lib/one_gadget/builds/libc-2.19-47411da31c1af33c897d1646f68d4443c3a156f2.rb +0 -47
  159. data/lib/one_gadget/builds/libc-2.19-482a813d828d5fe257838e679dff9b7be56bf4fb.rb +0 -47
  160. data/lib/one_gadget/builds/libc-2.19-484428905d6e138e0b88e97107732ace68c12752.rb +0 -45
  161. data/lib/one_gadget/builds/libc-2.19-4866fc3ad424dfb788e9ad11039b7759f3b51574.rb +0 -47
  162. data/lib/one_gadget/builds/libc-2.19-48b333aa64a86c31334714305379a6c1f1701c69.rb +0 -45
  163. data/lib/one_gadget/builds/libc-2.19-49f3ac15a25f78f0258283b3a207017e51ced583.rb +0 -49
  164. data/lib/one_gadget/builds/libc-2.19-4a384b8c751de6c0e2652261310104bf1b2127d5.rb +0 -50
  165. data/lib/one_gadget/builds/libc-2.19-4a5eeadb796e6dba8f289a90de2b53e71c8e8788.rb +0 -49
  166. data/lib/one_gadget/builds/libc-2.19-4daad26169c5c868b8ae90587fff76cc28e7b309.rb +0 -49
  167. data/lib/one_gadget/builds/libc-2.19-4e304f78f3cfb52dd521bd6fd8ae7a0c7400104e.rb +0 -50
  168. data/lib/one_gadget/builds/libc-2.19-4e9b0243eb28ea1a14539448a5317d6215fa13fa.rb +0 -49
  169. data/lib/one_gadget/builds/libc-2.19-4eda8ff01be3fba1c7bdd442a8690c3dc7397b6a.rb +0 -47
  170. data/lib/one_gadget/builds/libc-2.19-4f953c59dca85d439af86c6564c9fdb07cccafd5.rb +0 -50
  171. data/lib/one_gadget/builds/libc-2.19-509ee0c9616c4c3ed81951501a8950e1f529bbff.rb +0 -41
  172. data/lib/one_gadget/builds/libc-2.19-50c2ed4707152ba59bfacfd4e1fabc3b28ddc140.rb +0 -50
  173. data/lib/one_gadget/builds/libc-2.19-50e2c3560712d3d9f7af3d155cdeb69687045dd2.rb +0 -47
  174. data/lib/one_gadget/builds/libc-2.19-512993e1c66001e0ad11feea73ddfc22f9c0767b.rb +0 -50
  175. data/lib/one_gadget/builds/libc-2.19-515cd2920490d13129bbad0514c7c7c7e67c18bc.rb +0 -49
  176. data/lib/one_gadget/builds/libc-2.19-51a7763b217be74d9da6fd006c32f82ef82477b5.rb +0 -45
  177. data/lib/one_gadget/builds/libc-2.19-5382058b69031caa9b9996c11061cd164c9398ff.rb +0 -50
  178. data/lib/one_gadget/builds/libc-2.19-5455f3eafe22e7a085c3568bebc324a2ade811ea.rb +0 -49
  179. data/lib/one_gadget/builds/libc-2.19-54b97c45aa9ce58ba4dea4eda316f49927e51cff.rb +0 -50
  180. data/lib/one_gadget/builds/libc-2.19-54fe99efd891702e87da514403a2d3d8cae8032b.rb +0 -49
  181. data/lib/one_gadget/builds/libc-2.19-5537ab284321fdc6efd07276d6e4c524014bf069.rb +0 -50
  182. data/lib/one_gadget/builds/libc-2.19-55e62f166b419389a0de90ceab52c337946ba643.rb +0 -50
  183. data/lib/one_gadget/builds/libc-2.19-56338f83f1b656ee4395a8d3bddf810725151e91.rb +0 -49
  184. data/lib/one_gadget/builds/libc-2.19-58915015546da78c4116e45480be238bac4c59a7.rb +0 -45
  185. data/lib/one_gadget/builds/libc-2.19-58cabb8c6f68b05a1c1c9a707a43f22c3a55a3e9.rb +0 -45
  186. data/lib/one_gadget/builds/libc-2.19-5962ff0ec39da4ea3c572535d1da0c0d3b10cfe9.rb +0 -45
  187. data/lib/one_gadget/builds/libc-2.19-5a49bf8def435ac3fe9208df3c6b5622fe347a97.rb +0 -50
  188. data/lib/one_gadget/builds/libc-2.19-5a49ee56df5b5ab48a6f5607bb46a0b92a3d1c34.rb +0 -50
  189. data/lib/one_gadget/builds/libc-2.19-5a7a0413044f37bc4096c7bc4c33d1ea6880d856.rb +0 -47
  190. data/lib/one_gadget/builds/libc-2.19-5a968877a4a31019701f53ed38130c1313a5e0ad.rb +0 -50
  191. data/lib/one_gadget/builds/libc-2.19-5ab6a00d805f696b8aa6d0d2ee29d511b41499d1.rb +0 -50
  192. data/lib/one_gadget/builds/libc-2.19-5b344bb54cc929c6849371987107f587bd9e0d48.rb +0 -47
  193. data/lib/one_gadget/builds/libc-2.19-5b60e04aabbebdb248f5c03dad0ca1a9fab8be5f.rb +0 -49
  194. data/lib/one_gadget/builds/libc-2.19-5ba8f97e1beb7f068474d473e2db786c07df8561.rb +0 -50
  195. data/lib/one_gadget/builds/libc-2.19-5c02e6b0e80785f5944265c698dc811862018d21.rb +0 -49
  196. data/lib/one_gadget/builds/libc-2.19-5c14523f13f0fb9be3366f446e9e48165373ddf8.rb +0 -45
  197. data/lib/one_gadget/builds/libc-2.19-5e1e27a45fbd02cfa9a95bf657fc4aa53af75421.rb +0 -47
  198. data/lib/one_gadget/builds/libc-2.19-605a6d751871d12a83e34359ff4d73c895d6f4ce.rb +0 -50
  199. data/lib/one_gadget/builds/libc-2.19-60b315c3b5a4b7e4bf699cf79a137d19a9a13d89.rb +0 -47
  200. data/lib/one_gadget/builds/libc-2.19-60c7d280d7c8af6758a3a951524487641f349460.rb +0 -50
  201. data/lib/one_gadget/builds/libc-2.19-61eeda0c442c32c20f93008acbc978e28cca956d.rb +0 -45
  202. data/lib/one_gadget/builds/libc-2.19-63b04eb27336fd6c68f7bd8ba76ccbcc8df1b46c.rb +0 -49
  203. data/lib/one_gadget/builds/libc-2.19-6573062b2d3648b5970f82fbd63cd154c9d84661.rb +0 -49
  204. data/lib/one_gadget/builds/libc-2.19-6573e7dbcbb6179989e2308746f65b95c4117485.rb +0 -45
  205. data/lib/one_gadget/builds/libc-2.19-6850f318041a1a5a202ab0512dda55e80ff19ec8.rb +0 -45
  206. data/lib/one_gadget/builds/libc-2.19-68977b6661c8b646d7d88e32d81916937e346001.rb +0 -45
  207. data/lib/one_gadget/builds/libc-2.19-69673214041206e0eee5b9b5b47fd12d733127e1.rb +0 -46
  208. data/lib/one_gadget/builds/libc-2.19-6a6d6625087a1de6139a620795ef8b2360a06592.rb +0 -45
  209. data/lib/one_gadget/builds/libc-2.19-6abcb030391dbadd0fda38c3975ad6dcfe7fe20c.rb +0 -49
  210. data/lib/one_gadget/builds/libc-2.19-6aff6d091954955fe931bb720a17708513aabda7.rb +0 -50
  211. data/lib/one_gadget/builds/libc-2.19-6b536aa43eabd040e5117034f582d1c0374980cd.rb +0 -50
  212. data/lib/one_gadget/builds/libc-2.19-6d7e55c204d097c75f6b89717876c17f0dc1779a.rb +0 -45
  213. data/lib/one_gadget/builds/libc-2.19-6d8d0b8321b58b20d824cfa9d68d66769caa9b42.rb +0 -50
  214. data/lib/one_gadget/builds/libc-2.19-6ee0f980c1c75935d8802d0ea84e0a9f09874c51.rb +0 -47
  215. data/lib/one_gadget/builds/libc-2.19-700e2a19dfcc8e20b41145039b6c823123676696.rb +0 -45
  216. data/lib/one_gadget/builds/libc-2.19-705f27d45e46aeda2619beb62fc804d1c2fbe26c.rb +0 -50
  217. data/lib/one_gadget/builds/libc-2.19-707bc133809b86abab918bb8a8fc7791fe916765.rb +0 -50
  218. data/lib/one_gadget/builds/libc-2.19-74a3b58450e957c04e2cca3619695cb3d73bb68e.rb +0 -50
  219. data/lib/one_gadget/builds/libc-2.19-74bf136a60dee4fe2f7ca0d9b40fbdd6b0115496.rb +0 -45
  220. data/lib/one_gadget/builds/libc-2.19-7553121919b4b6bb1d86f8b1eb8eb152e6fb1218.rb +0 -47
  221. data/lib/one_gadget/builds/libc-2.19-77063a4c59e02c182d5afae288f450c7cdf5b6da.rb +0 -49
  222. data/lib/one_gadget/builds/libc-2.19-77504f0405a2d81d64310f262ac559cdc8375b04.rb +0 -47
  223. data/lib/one_gadget/builds/libc-2.19-77bcde9cd55f5ca93684b46705e0851585b94019.rb +0 -50
  224. data/lib/one_gadget/builds/libc-2.19-78c0362905c145cfc28aa2ff409962f3c8b2cb6b.rb +0 -50
  225. data/lib/one_gadget/builds/libc-2.19-7a02d454ba0e8af69e3a284c381318b55908deda.rb +0 -36
  226. data/lib/one_gadget/builds/libc-2.19-7a7914eec99efd40990d0b1978a01caf46612636.rb +0 -47
  227. data/lib/one_gadget/builds/libc-2.19-7ccbbd7f1713d8eebb6042a8da7e9f2ac1878d42.rb +0 -49
  228. data/lib/one_gadget/builds/libc-2.19-7cf04fce2326ced25e80c0d7972408574a0817e6.rb +0 -47
  229. data/lib/one_gadget/builds/libc-2.19-7d415bffb8dbc06c96e116d8e8f0d8deababbd9e.rb +0 -47
  230. data/lib/one_gadget/builds/libc-2.19-7e523a4a16878ad1fcb7844e93bdd4d474843f86.rb +0 -49
  231. data/lib/one_gadget/builds/libc-2.19-7e97512d5895e6d5e26dc5b26b31c575a80f0188.rb +0 -52
  232. data/lib/one_gadget/builds/libc-2.19-7f380884708f0bac5c779705562e01ccc7ecf223.rb +0 -45
  233. data/lib/one_gadget/builds/libc-2.19-7f6d04c0ad1b67e316c80cd606720675fc111b50.rb +0 -50
  234. data/lib/one_gadget/builds/libc-2.19-7fbf66aed8b38b67a1a5653e27e9e4d430b9ada6.rb +0 -49
  235. data/lib/one_gadget/builds/libc-2.19-80c8143bd0180bbeb21b7d8c12687d043ae81c7d.rb +0 -50
  236. data/lib/one_gadget/builds/libc-2.19-8131bf46e87501516970176f3f7e86762ffcc3bf.rb +0 -50
  237. data/lib/one_gadget/builds/libc-2.19-83aef0e751f3dddd4b56c5be57524239e39eecaa.rb +0 -45
  238. data/lib/one_gadget/builds/libc-2.19-83f3af43ecaf52a63801ea59ad113835dfb31d58.rb +0 -50
  239. data/lib/one_gadget/builds/libc-2.19-845104cd0116005c9b9569fe3c6d5afd3689a01e.rb +0 -50
  240. data/lib/one_gadget/builds/libc-2.19-8564abd306654cfc468a54117954244e1a2c9102.rb +0 -50
  241. data/lib/one_gadget/builds/libc-2.19-863b5d3db2ef5af0b32dba633dca439a3908c42e.rb +0 -47
  242. data/lib/one_gadget/builds/libc-2.19-866e18be92e8dcab711b7c1e3402065deff5df70.rb +0 -49
  243. data/lib/one_gadget/builds/libc-2.19-869f691faebbe08548ec64381e41acf5997c0fb0.rb +0 -49
  244. data/lib/one_gadget/builds/libc-2.19-87805ebef970b79b4a1fb5facb43719a26c335af.rb +0 -50
  245. data/lib/one_gadget/builds/libc-2.19-887a7db21e668f6153604d9e00d1026137f777ee.rb +0 -50
  246. data/lib/one_gadget/builds/libc-2.19-8b05579712ebaea7cae547f4fc461c0828e9c446.rb +0 -49
  247. data/lib/one_gadget/builds/libc-2.19-8c5d5643cd08bc078f22310103f7c6af4ed37921.rb +0 -47
  248. data/lib/one_gadget/builds/libc-2.19-8cb4573f8cc3764df7570800247a76dd63d847b4.rb +0 -47
  249. data/lib/one_gadget/builds/libc-2.19-8d935a42f2f2a1149aa52d3098b32b1d5012cb67.rb +0 -41
  250. data/lib/one_gadget/builds/libc-2.19-8dbcbca713ca58e2c7e4970e8218d536154bb64e.rb +0 -36
  251. data/lib/one_gadget/builds/libc-2.19-8e4150ea59c3a6fdc9f001ba17274f7c48e4be21.rb +0 -47
  252. data/lib/one_gadget/builds/libc-2.19-8fa762223d6b8ee6d47af7455c691a5e238c8209.rb +0 -49
  253. data/lib/one_gadget/builds/libc-2.19-90b068141be8b0f52ef8dc93e8327cda87a632bc.rb +0 -50
  254. data/lib/one_gadget/builds/libc-2.19-913a7e92e674593c7e1121b0013d81e20cebe85c.rb +0 -47
  255. data/lib/one_gadget/builds/libc-2.19-9356622cb19154bd2d3bb21e67f188e3cc3e2902.rb +0 -45
  256. data/lib/one_gadget/builds/libc-2.19-95287be8acccc7b5723f4306e6a5eca6dfe7bffd.rb +0 -50
  257. data/lib/one_gadget/builds/libc-2.19-9a970aa5f863d2ccecd63ceef8bb57d28e55be11.rb +0 -46
  258. data/lib/one_gadget/builds/libc-2.19-9bf807e100d6c152efd7e845c65ecfb92e2e202e.rb +0 -50
  259. data/lib/one_gadget/builds/libc-2.19-9d1dd2edd9ada4b73ddc73ea10ba1c9ef0810248.rb +0 -47
  260. data/lib/one_gadget/builds/libc-2.19-9e817f4c472417e94d161b392e13d6aeb76f0b5a.rb +0 -50
  261. data/lib/one_gadget/builds/libc-2.19-a13df1fb206f167af0eef4d438f3949d80f8bce3.rb +0 -47
  262. data/lib/one_gadget/builds/libc-2.19-a1818c2dd8e7c4a3d4f61270b4b29330d6b51391.rb +0 -49
  263. data/lib/one_gadget/builds/libc-2.19-a2d884479c5c8f73fbb82e6fefa5083623826cc1.rb +0 -49
  264. data/lib/one_gadget/builds/libc-2.19-a3386004b2a158b95ba4c26c01e421e6c2191a47.rb +0 -49
  265. data/lib/one_gadget/builds/libc-2.19-a3c88cff23421ec2e3c97860bdf28868592ed14c.rb +0 -47
  266. data/lib/one_gadget/builds/libc-2.19-a3ebc8ad2873288cbd2a510de65161c697310e5c.rb +0 -49
  267. data/lib/one_gadget/builds/libc-2.19-a4b13a91fc5d961be3e1a68a30938ba840ae4290.rb +0 -50
  268. data/lib/one_gadget/builds/libc-2.19-a6222959a65e5367ec3f2b54d7f114f6a2c8ce28.rb +0 -50
  269. data/lib/one_gadget/builds/libc-2.19-a62a3aed804ccd4faac1ae52ee39165dd1cf4ebe.rb +0 -45
  270. data/lib/one_gadget/builds/libc-2.19-a71e7ba2ffe12012ab7e5c0ff7d83d6f627a7548.rb +0 -45
  271. data/lib/one_gadget/builds/libc-2.19-a7204938a680127c01c9799462c3b33035f06358.rb +0 -49
  272. data/lib/one_gadget/builds/libc-2.19-a77581d3046ec7a2176ba4bebc222562668d9fd6.rb +0 -49
  273. data/lib/one_gadget/builds/libc-2.19-a77d09f3b8cbad4c430378157308f6cb71549a5a.rb +0 -50
  274. data/lib/one_gadget/builds/libc-2.19-a7e2264ecf52a64ea3ab55163132240c3142eafd.rb +0 -50
  275. data/lib/one_gadget/builds/libc-2.19-a820f849dda0b99ed06dd59bb88404969b3a5f88.rb +0 -50
  276. data/lib/one_gadget/builds/libc-2.19-a9f67b66e93e0abd79f1d8028188377397e4536b.rb +0 -50
  277. data/lib/one_gadget/builds/libc-2.19-ab474a836c41aed0f0bad2ddc66388253bfa75af.rb +0 -45
  278. data/lib/one_gadget/builds/libc-2.19-ad03e0bcbda2213489f10a6bf63a7f5fe3dd6558.rb +0 -47
  279. data/lib/one_gadget/builds/libc-2.19-ad0ce0a6b6e201c9a8195b2d55043afcd4f5db00.rb +0 -36
  280. data/lib/one_gadget/builds/libc-2.19-ad91c7db0fad11b03e3ce92eda28f673cb36db5d.rb +0 -50
  281. data/lib/one_gadget/builds/libc-2.19-adf7d21d8b442e6b601ad3dcc180608193d2d041.rb +0 -45
  282. data/lib/one_gadget/builds/libc-2.19-b166aefc9dff38869ad893bea2e9ce5e848628b1.rb +0 -50
  283. data/lib/one_gadget/builds/libc-2.19-b2c58c0aaead4cc02a5ad606edf4284ca598c0ef.rb +0 -50
  284. data/lib/one_gadget/builds/libc-2.19-b32788d3f2b080bd447b295cf59ace25fbfce313.rb +0 -46
  285. data/lib/one_gadget/builds/libc-2.19-b4fbe819a1dc946528b4added1887eb9ca130275.rb +0 -45
  286. data/lib/one_gadget/builds/libc-2.19-b571f83a8a6f5bb22d3558cddda9f943a2a67fd1.rb +0 -50
  287. data/lib/one_gadget/builds/libc-2.19-b700a5d57528fde5c441b020bcc4e19a9099e05b.rb +0 -50
  288. data/lib/one_gadget/builds/libc-2.19-b71ed2c38888a9d0e2c977877193e01a64e97a5d.rb +0 -49
  289. data/lib/one_gadget/builds/libc-2.19-b9082b0162f9d256c1ccf28b9d35d2cce9f6a6a4.rb +0 -50
  290. data/lib/one_gadget/builds/libc-2.19-ba1b1c588dbf0ebb80c646060af92e5a93825fee.rb +0 -49
  291. data/lib/one_gadget/builds/libc-2.19-bb34f13b7ae5fe42cdd14b96dc278f9726424cac.rb +0 -49
  292. data/lib/one_gadget/builds/libc-2.19-bb91233a6ef2a6c754a8ff20f7ba117d7d57707a.rb +0 -46
  293. data/lib/one_gadget/builds/libc-2.19-bd25bd030c2467d343581ee0d8d8aa7a32c7aa29.rb +0 -49
  294. data/lib/one_gadget/builds/libc-2.19-bd69ec1fafeef65209d9874025fd45e093b23144.rb +0 -49
  295. data/lib/one_gadget/builds/libc-2.19-be4425690f42dd1807770d974ff87b88c51d306d.rb +0 -49
  296. data/lib/one_gadget/builds/libc-2.19-bf368b38f238cfe2c12eac2b487ee8ae58a3a0d8.rb +0 -50
  297. data/lib/one_gadget/builds/libc-2.19-c00c9b70ba01f92a952474258bed608c3e7be6b9.rb +0 -50
  298. data/lib/one_gadget/builds/libc-2.19-c0ee9400445c93ecbc8562e006a8b95ed4d07834.rb +0 -49
  299. data/lib/one_gadget/builds/libc-2.19-c24f77af0c861079dbcbbdf09f4b8eee8eb7130c.rb +0 -50
  300. data/lib/one_gadget/builds/libc-2.19-c379cc4f4e8a55319c70e4d3ce4dc2a4c30f151a.rb +0 -49
  301. data/lib/one_gadget/builds/libc-2.19-c40027c0c6f76c27293f7570888b9d64e1a93285.rb +0 -50
  302. data/lib/one_gadget/builds/libc-2.19-c41ed0ae53a1a559a44a1140c77c3b274a38e442.rb +0 -50
  303. data/lib/one_gadget/builds/libc-2.19-c4278754b0c28c437e1e5bd195d82b6d9e4a6d73.rb +0 -47
  304. data/lib/one_gadget/builds/libc-2.19-c46746723526fa9feb3cdf4218ec24c9179131ad.rb +0 -45
  305. data/lib/one_gadget/builds/libc-2.19-c5affb5af2f506eb7d48c471160790d4c24e81ae.rb +0 -46
  306. data/lib/one_gadget/builds/libc-2.19-c5e45bf4881c526999786f4dd2718042b20e582c.rb +0 -49
  307. data/lib/one_gadget/builds/libc-2.19-c7cab037359898862b1584a1e3c3372683daad3f.rb +0 -47
  308. data/lib/one_gadget/builds/libc-2.19-c83833a5f5ca5636f8f914c2c9f1726860fce8b1.rb +0 -45
  309. data/lib/one_gadget/builds/libc-2.19-cad76dba04139f928612ee55bf9e14b74e1b7c3f.rb +0 -45
  310. data/lib/one_gadget/builds/libc-2.19-cafa8de523249f48aebec877e9f45f904e4d62a4.rb +0 -50
  311. data/lib/one_gadget/builds/libc-2.19-cb46f5139038116d66a73281a3aca373f8ac7428.rb +0 -49
  312. data/lib/one_gadget/builds/libc-2.19-cb6e2a7a6812e08f621a5c6b5b3372ab5126fc84.rb +0 -47
  313. data/lib/one_gadget/builds/libc-2.19-cb8c8a8edf5ff17d2df7e68e63f6cb242d85b524.rb +0 -49
  314. data/lib/one_gadget/builds/libc-2.19-cba6f22d1ee9163390664add53a9ef135c664903.rb +0 -45
  315. data/lib/one_gadget/builds/libc-2.19-ce25be66ee91861336df34413f53446cb41a2601.rb +0 -47
  316. data/lib/one_gadget/builds/libc-2.19-cf43a056242aa025a153e4a7b6698edd7497f305.rb +0 -45
  317. data/lib/one_gadget/builds/libc-2.19-d06fb2560475e149d6d2401eae955164eb8262fa.rb +0 -45
  318. data/lib/one_gadget/builds/libc-2.19-d11506d7facb213bd2c6063f010a42fa9d723879.rb +0 -45
  319. data/lib/one_gadget/builds/libc-2.19-d1c6ec21d9d74bb0d866a08635b1fc075c4a2e40.rb +0 -49
  320. data/lib/one_gadget/builds/libc-2.19-d2b9e70520a7dbf92895b3d08c9e6a92010571cf.rb +0 -50
  321. data/lib/one_gadget/builds/libc-2.19-d56aa9d47cf61192f75e28fef805c0ce20502157.rb +0 -46
  322. data/lib/one_gadget/builds/libc-2.19-d66b201cb2987a585890d4be28cf92dad14cb760.rb +0 -47
  323. data/lib/one_gadget/builds/libc-2.19-d6c3d9e55db8600672a2ef744f57aa84e6bea41a.rb +0 -49
  324. data/lib/one_gadget/builds/libc-2.19-d80f3b321f845a71f3c47d913dd3e65152565863.rb +0 -49
  325. data/lib/one_gadget/builds/libc-2.19-d8adddcd7476a6b09bdf02fe1e1d73bd393b6ed7.rb +0 -47
  326. data/lib/one_gadget/builds/libc-2.19-d9a10b8ef90300628dd0a3a535106967714d7328.rb +0 -50
  327. data/lib/one_gadget/builds/libc-2.19-db3fac1541a95bdab2d9ae20bdef3c2f1c13b7e0.rb +0 -50
  328. data/lib/one_gadget/builds/libc-2.19-dd1b1c22eae3c8f0faa0b355bbcdca8f7c0cd91d.rb +0 -49
  329. data/lib/one_gadget/builds/libc-2.19-df559a150829d9f3cdd0b5ce1e5b4d512d20f55f.rb +0 -52
  330. data/lib/one_gadget/builds/libc-2.19-e01fa6a6b4685ecaebc6756679c283c6572eb6f2.rb +0 -45
  331. data/lib/one_gadget/builds/libc-2.19-e10149c2a9bf0df3c9149b351168fcd32adb41c6.rb +0 -46
  332. data/lib/one_gadget/builds/libc-2.19-e13d310493f24ceb84f232c5f72469cbe516d57a.rb +0 -50
  333. data/lib/one_gadget/builds/libc-2.19-e2773917e0ca89ebc16787d8cbc96400088583ec.rb +0 -49
  334. data/lib/one_gadget/builds/libc-2.19-e4c3a6a564aeddbafa8be691efffc79e755fa8a4.rb +0 -49
  335. data/lib/one_gadget/builds/libc-2.19-e53d50e134c10f91f8cf52b1778f85b7926147cc.rb +0 -45
  336. data/lib/one_gadget/builds/libc-2.19-e540f810b37a33fab5b3116fdbf8bcaacc000c16.rb +0 -45
  337. data/lib/one_gadget/builds/libc-2.19-e5bd51e1eefbc5c3d96a3aba4dcb50a0cec162de.rb +0 -50
  338. data/lib/one_gadget/builds/libc-2.19-e6ac06f6c982d98a419cec51de313ea609f2b1f2.rb +0 -50
  339. data/lib/one_gadget/builds/libc-2.19-e6e4c4588d098e16d0fba7e15ba9c81f294074a4.rb +0 -49
  340. data/lib/one_gadget/builds/libc-2.19-e70d0551a6ce8feb294de6c138135b58d8763e85.rb +0 -47
  341. data/lib/one_gadget/builds/libc-2.19-e806961cc6bc18acfd55df2613b100a9e733cebd.rb +0 -47
  342. data/lib/one_gadget/builds/libc-2.19-e882a1c9195b6bc1a62b3aeda9b63733109abd2f.rb +0 -49
  343. data/lib/one_gadget/builds/libc-2.19-e892e2e9d5818511e2390e642edd1d4cf2331885.rb +0 -47
  344. data/lib/one_gadget/builds/libc-2.19-e89b2153fd6795f03d6cd1dd789241326a7ee458.rb +0 -49
  345. data/lib/one_gadget/builds/libc-2.19-ebc3c6d17edbddfdcb000366fae4e7cab6ba420c.rb +0 -45
  346. data/lib/one_gadget/builds/libc-2.19-ecc10e3f1443d65007126bef8184ac84bfdf6b7c.rb +0 -47
  347. data/lib/one_gadget/builds/libc-2.19-edc2302cd47e8eedfc2e45da9fddecbdb07b4f21.rb +0 -50
  348. data/lib/one_gadget/builds/libc-2.19-edd5ba629053d507cb963d5269db6e7ae5bde36e.rb +0 -47
  349. data/lib/one_gadget/builds/libc-2.19-f3a1e60201c31bb9fef972279d08dfc33dbb3ce9.rb +0 -50
  350. data/lib/one_gadget/builds/libc-2.19-f5c375701c2c4406306201e19b42521f504175ec.rb +0 -49
  351. data/lib/one_gadget/builds/libc-2.19-f5e1349016d93661914069bcc7254e702434e445.rb +0 -49
  352. data/lib/one_gadget/builds/libc-2.19-f6248141094bb965d660fd2ce31d8534593c1003.rb +0 -50
  353. data/lib/one_gadget/builds/libc-2.19-f6ba6844f5bba0603e13b577328b9f326d4fef8a.rb +0 -45
  354. data/lib/one_gadget/builds/libc-2.19-f8cc1a32de8229e21b61215844be0462c6ac49a6.rb +0 -45
  355. data/lib/one_gadget/builds/libc-2.19-f9b5531180de2f0ce620bc03b5fc4d7f8570fd18.rb +0 -50
  356. data/lib/one_gadget/builds/libc-2.19-fb899b514fa6763ad006688efb32ecf9ca691ff3.rb +0 -49
  357. data/lib/one_gadget/builds/libc-2.19-fd5df0d8007d692d1c00226f81ba04b4f734b5b2.rb +0 -50
  358. data/lib/one_gadget/builds/libc-2.19-fe493bf9ecadc1f26aa36d4a95c718e9f227ad3a.rb +0 -50
  359. data/lib/one_gadget/builds/libc-2.19-fe76e177d397e9bdccf270232cc7e3a06e84aeb1.rb +0 -49
  360. data/lib/one_gadget/builds/libc-2.20-024df4febc9c789a8eeb052385d5e780b98a379f.rb +0 -48
  361. data/lib/one_gadget/builds/libc-2.20-074a896d13132ebfb22b89fd4d026b8608b84d01.rb +0 -46
  362. data/lib/one_gadget/builds/libc-2.20-0a1de0cc524dacd5b00c678daf50dde4d4539203.rb +0 -46
  363. data/lib/one_gadget/builds/libc-2.20-22fcfb6d820fec1bd07ebc3506236a1c10d2a74e.rb +0 -46
  364. data/lib/one_gadget/builds/libc-2.20-317589ae8050581abdfc414151c4655abc3cdfcd.rb +0 -48
  365. data/lib/one_gadget/builds/libc-2.20-370ce0ece788e8e73d938f2fb3ce6adb890eb417.rb +0 -48
  366. data/lib/one_gadget/builds/libc-2.20-389e645d86ab23c5f6acd039caacb18a02c3cfa2.rb +0 -46
  367. data/lib/one_gadget/builds/libc-2.20-398115bd423958b1769317a6f7e4928df141eb57.rb +0 -46
  368. data/lib/one_gadget/builds/libc-2.20-62fa1628ae33cc45efe8313a24ec8c475c9dffa6.rb +0 -46
  369. data/lib/one_gadget/builds/libc-2.20-6daaba13e3623d964ca116f91948afc5231732a8.rb +0 -48
  370. data/lib/one_gadget/builds/libc-2.20-765f172661014a4db8bb05b203bbc07c8686aa25.rb +0 -46
  371. data/lib/one_gadget/builds/libc-2.20-8bb8c78658cc612de895ec59a8026a08c86662e5.rb +0 -46
  372. data/lib/one_gadget/builds/libc-2.20-a8e57776dcdd5da9b7c9f60e65d28eaeb5b8173f.rb +0 -46
  373. data/lib/one_gadget/builds/libc-2.20-ad272c3f76f36f4fe1357514d4b207a06f7f536c.rb +0 -46
  374. data/lib/one_gadget/builds/libc-2.20-aefe2d045393dbe3e0a2acef88b6f31a78d3a27c.rb +0 -46
  375. data/lib/one_gadget/builds/libc-2.20-b1217615db4b7a86b90436982610bf86a03ca881.rb +0 -46
  376. data/lib/one_gadget/builds/libc-2.20-f3063b7115d5a383189937852ce356f4c60fd190.rb +0 -46
  377. data/lib/one_gadget/builds/libc-2.20-f53b8ad377a1988dcf6329bbdfa7b1201431656e.rb +0 -46
  378. data/lib/one_gadget/builds/libc-2.21-04f18629ef42b062ed0c8f60d5bfaa40a7d28ef7.rb +0 -52
  379. data/lib/one_gadget/builds/libc-2.21-092fa8483d177952f4b38a4b9be8305baef60466.rb +0 -46
  380. data/lib/one_gadget/builds/libc-2.21-096d4c9ce21618defe0b3e4694dc5380e0189009.rb +0 -51
  381. data/lib/one_gadget/builds/libc-2.21-13495a0bf9fc076d41056041922792ddb58ac456.rb +0 -46
  382. data/lib/one_gadget/builds/libc-2.21-169a143e9c40cfd9d09695333e45fd67743cd2d6.rb +0 -46
  383. data/lib/one_gadget/builds/libc-2.21-1800fb8ed39680604091e8268cd21cb8ee6f747f.rb +0 -46
  384. data/lib/one_gadget/builds/libc-2.21-185ab573783653be4ea1784a59be3a1499ca64c7.rb +0 -46
  385. data/lib/one_gadget/builds/libc-2.21-1a266f551f39283eff85f4ab8913d8b6d57fb290.rb +0 -46
  386. data/lib/one_gadget/builds/libc-2.21-1dfdbdb3ed58b70e07e1a94ff3e95d84652cb0f1.rb +0 -46
  387. data/lib/one_gadget/builds/libc-2.21-1ee253f6aeaec7a001984e257b86ad7224e46469.rb +0 -46
  388. data/lib/one_gadget/builds/libc-2.21-20b088455f100a9a72e94a69e843b6e0831cbedb.rb +0 -46
  389. data/lib/one_gadget/builds/libc-2.21-2466292818ad2b41c64ea7107123fe96010e1b96.rb +0 -46
  390. data/lib/one_gadget/builds/libc-2.21-24c3f01054f36f8184ba673743310b5178354334.rb +0 -46
  391. data/lib/one_gadget/builds/libc-2.21-25dd428fb4c350c16dfee20491f1a06484a2bfa3.rb +0 -46
  392. data/lib/one_gadget/builds/libc-2.21-2c092eb4091e8d3a20313a09194418595efca9db.rb +0 -46
  393. data/lib/one_gadget/builds/libc-2.21-2e9718e58257bda1dc0d751665a3ee233bf606f2.rb +0 -46
  394. data/lib/one_gadget/builds/libc-2.21-3141017330a2057c655dcb61bd3d9b2c98399181.rb +0 -46
  395. data/lib/one_gadget/builds/libc-2.21-39f1a0bc7f66ea42f3341c0d629bae8caef2346d.rb +0 -46
  396. data/lib/one_gadget/builds/libc-2.21-3af67b618c87a9cfadcf4be33331e34f77f5c842.rb +0 -46
  397. data/lib/one_gadget/builds/libc-2.21-3b9bef61c919475929cfcc3608bdadb86c3b1c6e.rb +0 -46
  398. data/lib/one_gadget/builds/libc-2.21-3c9e3250b31dfe4b5e139cda266e7beabc47e504.rb +0 -46
  399. data/lib/one_gadget/builds/libc-2.21-3eab56f86f3ee1745baa9e6fa771e652340487cc.rb +0 -46
  400. data/lib/one_gadget/builds/libc-2.21-3f08a19432b31835c71ea7d5b3687562cef053e3.rb +0 -46
  401. data/lib/one_gadget/builds/libc-2.21-3faf7b9bab86ba7024b62d99c859136333b8a70d.rb +0 -42
  402. data/lib/one_gadget/builds/libc-2.21-3fc95a6cdd31b66c550d64d90d0431f68ed43571.rb +0 -46
  403. data/lib/one_gadget/builds/libc-2.21-41530fe252a0d5854827649ddf6e2c8fba9d1653.rb +0 -46
  404. data/lib/one_gadget/builds/libc-2.21-4a0864552f6b027689c7a69efa12e277009c5999.rb +0 -46
  405. data/lib/one_gadget/builds/libc-2.21-4b7de972132a4762898ccb1210ffb7cfc0e6f14e.rb +0 -46
  406. data/lib/one_gadget/builds/libc-2.21-4ce84d266a07230287b230ac4ce8ba2d2f3f854e.rb +0 -46
  407. data/lib/one_gadget/builds/libc-2.21-4dec520cda38e785c80e30db8fcd5428cee0f324.rb +0 -42
  408. data/lib/one_gadget/builds/libc-2.21-4f14eb66c408453973042c95d25f4e014bf4e364.rb +0 -46
  409. data/lib/one_gadget/builds/libc-2.21-503c5dd98cc9529359e601c1595c995cf359df30.rb +0 -46
  410. data/lib/one_gadget/builds/libc-2.21-505a88bc8f93a7ba339895ce27dc4ad8331cad7d.rb +0 -46
  411. data/lib/one_gadget/builds/libc-2.21-53377f31675a81af793df0c63b40e193a4a6999b.rb +0 -46
  412. data/lib/one_gadget/builds/libc-2.21-53b6f3047638b0703bf1091fe4c3afe79445d546.rb +0 -46
  413. data/lib/one_gadget/builds/libc-2.21-570c7051e379d909016cb81933bc5701daecd428.rb +0 -46
  414. data/lib/one_gadget/builds/libc-2.21-591e5a56f9d466a7c70baf6684d99843ab8c45d1.rb +0 -46
  415. data/lib/one_gadget/builds/libc-2.21-59b7200857a55acdfa5de730a573eed0cfec0962.rb +0 -46
  416. data/lib/one_gadget/builds/libc-2.21-59c981c8e0e729ae7c562daa00be2cdb8e0c090a.rb +0 -46
  417. data/lib/one_gadget/builds/libc-2.21-59eae8a903584dcbc14cf07c719cd23b9f65e230.rb +0 -49
  418. data/lib/one_gadget/builds/libc-2.21-5a22b7ec63fd7c5dc6a92875046515f4beac727d.rb +0 -42
  419. data/lib/one_gadget/builds/libc-2.21-5c9f149296e581c181529723f7eb44bf10a7d746.rb +0 -46
  420. data/lib/one_gadget/builds/libc-2.21-5ccd94c4e3483df05be240ff1fb8a3f53794cc6f.rb +0 -49
  421. data/lib/one_gadget/builds/libc-2.21-5f977df2af6a6a25e48e60dd867680d79dc6da8e.rb +0 -46
  422. data/lib/one_gadget/builds/libc-2.21-60e1d8111d5fec5580da9105670e78a63287732e.rb +0 -46
  423. data/lib/one_gadget/builds/libc-2.21-629ae1554ea01c67fdedb7874de4686f6c30b6e3.rb +0 -46
  424. data/lib/one_gadget/builds/libc-2.21-63c3d4b45af73dff54258c5a5cab9e3d828cc766.rb +0 -46
  425. data/lib/one_gadget/builds/libc-2.21-64125575d05a0aedbfe187ef0f95431229c5aac8.rb +0 -42
  426. data/lib/one_gadget/builds/libc-2.21-6980ac7f9370d2bbb2aade5ceeedc8afc4f02f3e.rb +0 -46
  427. data/lib/one_gadget/builds/libc-2.21-7b173624b62ee3bd8049bdeaaff990839eb4cb36.rb +0 -46
  428. data/lib/one_gadget/builds/libc-2.21-7d672538d6a08ce14e4bd6e931392bf63156f490.rb +0 -46
  429. data/lib/one_gadget/builds/libc-2.21-7f4a3fabc90bc1e410fe6377e2a1826d426c8f57.rb +0 -46
  430. data/lib/one_gadget/builds/libc-2.21-80e8cfbc6550fde842cfb72ba97d916827d462df.rb +0 -46
  431. data/lib/one_gadget/builds/libc-2.21-82d7d2a5db69a59c01ca5d2a63250ca6a6bd08a3.rb +0 -52
  432. data/lib/one_gadget/builds/libc-2.21-834a46faae116cb9500c57d6c06e701f98a52e2e.rb +0 -42
  433. data/lib/one_gadget/builds/libc-2.21-83d46f5dc4d7894ea923bf566f6b38bfceedc6e1.rb +0 -46
  434. data/lib/one_gadget/builds/libc-2.21-847fa75888ee989393032f4ae5a133902df3e2cb.rb +0 -46
  435. data/lib/one_gadget/builds/libc-2.21-8626995277c9a0db7fec384061c564c3ea50eeae.rb +0 -46
  436. data/lib/one_gadget/builds/libc-2.21-86d752d92fbf1e8b558018e4b122dab52b304ab6.rb +0 -46
  437. data/lib/one_gadget/builds/libc-2.21-879c9c4ffc5aabfd0a9c9d1b1c73d5f1df969aac.rb +0 -46
  438. data/lib/one_gadget/builds/libc-2.21-87ded6f6ac3f40a59e17170307d0b15c1170552c.rb +0 -46
  439. data/lib/one_gadget/builds/libc-2.21-8acd43cf74a9756cd727b8516b08679ee071a92d.rb +0 -49
  440. data/lib/one_gadget/builds/libc-2.21-8e845b188299cb419b70cf5de27c22a50f776fce.rb +0 -46
  441. data/lib/one_gadget/builds/libc-2.21-924acd9c6de558f26574bdc2eaa3048b597f2e5e.rb +0 -46
  442. data/lib/one_gadget/builds/libc-2.21-93d704dff1ec8dceb660b58863d2a36afd52b66e.rb +0 -46
  443. data/lib/one_gadget/builds/libc-2.21-9595d37f80a7925dc75efa522c839df34edb4b46.rb +0 -46
  444. data/lib/one_gadget/builds/libc-2.21-9ac81172d5ff96f40d984fe7c10073a98f1a6b2e.rb +0 -46
  445. data/lib/one_gadget/builds/libc-2.21-9c764e8fb2df1bccb33ffedd92cd8659aab98e33.rb +0 -46
  446. data/lib/one_gadget/builds/libc-2.21-9cf342a68f1a7b4b6ba4df62667c5f4ee8cf7687.rb +0 -46
  447. data/lib/one_gadget/builds/libc-2.21-9d0884395161c74567d7fea747e15c9a31785e06.rb +0 -46
  448. data/lib/one_gadget/builds/libc-2.21-a0ccdc12ed6ad0d67778aff9b49abc3c8eb30b9a.rb +0 -46
  449. data/lib/one_gadget/builds/libc-2.21-a167f5367b27f9493cefac9b23e68f180239e96c.rb +0 -46
  450. data/lib/one_gadget/builds/libc-2.21-a1f20771562e9a58f6d2746d38a09694d4cbc345.rb +0 -46
  451. data/lib/one_gadget/builds/libc-2.21-a235f288513fa6064a856c499e0453f9f4a44f8a.rb +0 -46
  452. data/lib/one_gadget/builds/libc-2.21-a5c1de4517ba044d2f7cfa479e69f29bbc673c6a.rb +0 -46
  453. data/lib/one_gadget/builds/libc-2.21-a890a8ee268f8ae36ae0810b6eea7c45766b4133.rb +0 -46
  454. data/lib/one_gadget/builds/libc-2.21-a9274e5d52fbb32ba32bae055f69ba1741771e79.rb +0 -46
  455. data/lib/one_gadget/builds/libc-2.21-ab066cff9171d55efb0dd884d31c18682ae6922b.rb +0 -46
  456. data/lib/one_gadget/builds/libc-2.21-af2daffab6880d8bc68db4143643c132164dc7ca.rb +0 -46
  457. data/lib/one_gadget/builds/libc-2.21-b180bd3047be9b4b70fb28455365546001b76e85.rb +0 -42
  458. data/lib/one_gadget/builds/libc-2.21-b440183d6aefac5a9259f6e2de824e43e85ed341.rb +0 -46
  459. data/lib/one_gadget/builds/libc-2.21-b551bf2740c7e79d1722776a6e0d35d65885d037.rb +0 -46
  460. data/lib/one_gadget/builds/libc-2.21-b7ac9e99f0fc2fb83f98b6a01615c0508de638a8.rb +0 -46
  461. data/lib/one_gadget/builds/libc-2.21-b8c6428b947bad767595961d6cb907493073183c.rb +0 -46
  462. data/lib/one_gadget/builds/libc-2.21-b8daa3ddab3acf64323b47fee32338d5c9591c4d.rb +0 -46
  463. data/lib/one_gadget/builds/libc-2.21-bbfccd958f34a2292058d60a0ddf19e1fcd4ec1e.rb +0 -46
  464. data/lib/one_gadget/builds/libc-2.21-bda2fd9acb85c5de61a1d4c7e2098fce25f3199f.rb +0 -46
  465. data/lib/one_gadget/builds/libc-2.21-c164b79c008a3ad0c2f0277688274a0c3c98e79b.rb +0 -46
  466. data/lib/one_gadget/builds/libc-2.21-c2f12c8aed093770731d57b19dc039c32423246b.rb +0 -46
  467. data/lib/one_gadget/builds/libc-2.21-c3318940121036465913d946fa62fef61459b68a.rb +0 -46
  468. data/lib/one_gadget/builds/libc-2.21-c4969c549a0d0099304108e50a77ff68602ed922.rb +0 -46
  469. data/lib/one_gadget/builds/libc-2.21-c51ca19ec6c53db97a15c67eea8ed00761570689.rb +0 -46
  470. data/lib/one_gadget/builds/libc-2.21-c601601a621be82612e36dd2a981121c141c72c9.rb +0 -46
  471. data/lib/one_gadget/builds/libc-2.21-c6654d8229ff494d5b5c067e8a1dbf184fcdd57d.rb +0 -46
  472. data/lib/one_gadget/builds/libc-2.21-c91d043eaeb023885cdd80a3c0872d9fde9867bb.rb +0 -46
  473. data/lib/one_gadget/builds/libc-2.21-cb732feec2d8bae5ebb5d072a86cd31aca65f89b.rb +0 -46
  474. data/lib/one_gadget/builds/libc-2.21-cf580407d98ed9bec9c92c1ae2241eca8604e4d5.rb +0 -46
  475. data/lib/one_gadget/builds/libc-2.21-d0cbed817be7f8947339e1796d1964567e9dfe96.rb +0 -46
  476. data/lib/one_gadget/builds/libc-2.21-d1c4dd44416a5a2781b37f7d9111961c8dc58583.rb +0 -46
  477. data/lib/one_gadget/builds/libc-2.21-dc53884306f13d86e310d893433556d93ef7facc.rb +0 -49
  478. data/lib/one_gadget/builds/libc-2.21-dc70ee31ce02e89d989cb38dc885438e19dc5919.rb +0 -49
  479. data/lib/one_gadget/builds/libc-2.21-e174b9dc46c7d38d1f153f2a4f9c059484042cdc.rb +0 -46
  480. data/lib/one_gadget/builds/libc-2.21-e3a06c9d90272ed9dd49863667de02579971fefd.rb +0 -46
  481. data/lib/one_gadget/builds/libc-2.21-e6f442dc2d29e0e16cd34dc787d3c95fafeb90cc.rb +0 -46
  482. data/lib/one_gadget/builds/libc-2.21-e91a3a679d219196e597358caa46469961c471fd.rb +0 -42
  483. data/lib/one_gadget/builds/libc-2.21-f08b44317fec610d418f62d5d24fafaec0510353.rb +0 -46
  484. data/lib/one_gadget/builds/libc-2.21-f0c24219cbba0605e39e02123398437c5dbbb104.rb +0 -51
  485. data/lib/one_gadget/builds/libc-2.21-f233903e448d3ae08e72a23b0e742ecfc8b6ccc1.rb +0 -46
  486. data/lib/one_gadget/builds/libc-2.21-f5043f1299e2b98ddf8a1ba08f731f260492601a.rb +0 -46
  487. data/lib/one_gadget/builds/libc-2.21-f9e9b2f3225a520c823f0d81aea92a3dacfd621f.rb +0 -46
  488. data/lib/one_gadget/builds/libc-2.21-fe668be19c2dadb3cef5e6eafb6796acabf0b8f1.rb +0 -49
  489. data/lib/one_gadget/builds/libc-2.21.90-d8785e62882096798b9a47645c401e2db0c3da87.rb +0 -54
  490. data/lib/one_gadget/builds/libc-2.21.90-ec2edee6fe6141b914f74b6d3541e986c1995420.rb +0 -54
  491. data/lib/one_gadget/builds/libc-2.22-056b23405739592e947a92cb210791fbfe9d9938.rb +0 -52
  492. data/lib/one_gadget/builds/libc-2.22-057feedce849edba19d94bf3920903b4c297e249.rb +0 -52
  493. data/lib/one_gadget/builds/libc-2.22-06a01f4986991b8605b775bd21c3829c071c7e01.rb +0 -46
  494. data/lib/one_gadget/builds/libc-2.22-07627a0a76d4347858dc9b2533aac197920feb67.rb +0 -42
  495. data/lib/one_gadget/builds/libc-2.22-079d0ce21fe81c5c95f687db4b944d28c121a849.rb +0 -52
  496. data/lib/one_gadget/builds/libc-2.22-0f1e39397cbf59f35018306725336d275b33fad6.rb +0 -46
  497. data/lib/one_gadget/builds/libc-2.22-111a78efce1a05c176c84381f9a8687564c124dd.rb +0 -46
  498. data/lib/one_gadget/builds/libc-2.22-11c38e8940f7cd6be485bf6903fdb169d71617dd.rb +0 -46
  499. data/lib/one_gadget/builds/libc-2.22-121137de182d11744ae6be8683de568a64edca7f.rb +0 -46
  500. data/lib/one_gadget/builds/libc-2.22-124cbcd567a508befc4d08238d209749a6f81ef6.rb +0 -46
  501. data/lib/one_gadget/builds/libc-2.22-13fbe87df7583cb37d64da775d5298d139d6c645.rb +0 -46
  502. data/lib/one_gadget/builds/libc-2.22-142110382cc91407cee827f639c811fa41aad081.rb +0 -46
  503. data/lib/one_gadget/builds/libc-2.22-157a6d46c53ff9cd3176239d342644bd34cc9e6a.rb +0 -46
  504. data/lib/one_gadget/builds/libc-2.22-172387e0713d81467e907f48691fd8a3a9d9b745.rb +0 -46
  505. data/lib/one_gadget/builds/libc-2.22-1853ca84fd72235c89ca6c71dc2fd586035fb508.rb +0 -52
  506. data/lib/one_gadget/builds/libc-2.22-18c9fd18d79dce6408c752dc974b0b895286f861.rb +0 -46
  507. data/lib/one_gadget/builds/libc-2.22-190d9018168d767820b7fc6fac5cb62d1a40d819.rb +0 -52
  508. data/lib/one_gadget/builds/libc-2.22-1c3905611074ae1c586d90e5312e49817dfb1454.rb +0 -46
  509. data/lib/one_gadget/builds/libc-2.22-1ef0e3b0b75b086f54c2fb8ad958db46c199de28.rb +0 -52
  510. data/lib/one_gadget/builds/libc-2.22-20d1cd3333f60c045ee0d71cd32ac74a6b721b85.rb +0 -46
  511. data/lib/one_gadget/builds/libc-2.22-22585efc70794668f1b7f01f4392daef49f476e0.rb +0 -46
  512. data/lib/one_gadget/builds/libc-2.22-263aaed35e720148fbc396f8311138d46d099d7e.rb +0 -46
  513. data/lib/one_gadget/builds/libc-2.22-26ce2dab7bee96ee1c9d290100ffae593a644ddf.rb +0 -42
  514. data/lib/one_gadget/builds/libc-2.22-2881424e7394f45d7b7e4b9d7bee0ac3336fb53c.rb +0 -42
  515. data/lib/one_gadget/builds/libc-2.22-291a696d50e945b55f27ad1b7055adb4d94d611e.rb +0 -52
  516. data/lib/one_gadget/builds/libc-2.22-2da1c94523e9778bedccac2922cdb5582b3bab99.rb +0 -52
  517. data/lib/one_gadget/builds/libc-2.22-34701c7aa9501f113595ba20117d03fbab4a7edf.rb +0 -46
  518. data/lib/one_gadget/builds/libc-2.22-34a1e432068988d1d05ded9a1ff3a5a4d9ba957d.rb +0 -46
  519. data/lib/one_gadget/builds/libc-2.22-35dad9bbfda68f466fdb0784359dfa8be8f2e636.rb +0 -46
  520. data/lib/one_gadget/builds/libc-2.22-372f377ce426f864bf68f2a32cd703d595664885.rb +0 -46
  521. data/lib/one_gadget/builds/libc-2.22-37acef3594b4fbe5bdb37cfab88155ea223bac9d.rb +0 -46
  522. data/lib/one_gadget/builds/libc-2.22-3d8a83ac6553abcf5e18c10a39e5020352cf1fb2.rb +0 -52
  523. data/lib/one_gadget/builds/libc-2.22-3e86d1920edbc9fb506c499301164f3920a3e141.rb +0 -46
  524. data/lib/one_gadget/builds/libc-2.22-461f342f6e88de1977eb60aecd9554335b3602be.rb +0 -46
  525. data/lib/one_gadget/builds/libc-2.22-49c585626bc777823124cce965150be221723855.rb +0 -52
  526. data/lib/one_gadget/builds/libc-2.22-4bccfeb62282482e2bb5fe47523cc26cc9891d9d.rb +0 -52
  527. data/lib/one_gadget/builds/libc-2.22-4e7b4e6104632c48765f27c7e53ce073c73b03c2.rb +0 -46
  528. data/lib/one_gadget/builds/libc-2.22-515163d8d5ee351c62d0ef6438b1cb492b882128.rb +0 -46
  529. data/lib/one_gadget/builds/libc-2.22-53e3e8ce017c356969e16f4bb329fc45e948a045.rb +0 -46
  530. data/lib/one_gadget/builds/libc-2.22-5f40eb5a5f32b9824ba0cb2547ffb2b6964f6414.rb +0 -46
  531. data/lib/one_gadget/builds/libc-2.22-6281300a16a309db14773233ab085dadc65f0081.rb +0 -52
  532. data/lib/one_gadget/builds/libc-2.22-6293d42412b9a87b7233bcb5f5cbf4496c8c90dd.rb +0 -52
  533. data/lib/one_gadget/builds/libc-2.22-661a81563d20e7823c63828ff38348ec1b80adcc.rb +0 -46
  534. data/lib/one_gadget/builds/libc-2.22-6670937bc44571ec34ab812a7a7d2ce839a382ad.rb +0 -46
  535. data/lib/one_gadget/builds/libc-2.22-669abe13c2975dbdc59eb4cf3a6e9bd28ecd376c.rb +0 -52
  536. data/lib/one_gadget/builds/libc-2.22-66b3470fd1603fc11a54f8f1c69b81d85f2f0074.rb +0 -46
  537. data/lib/one_gadget/builds/libc-2.22-67222017b4ae03b81a41387cb81b0814654e2dd6.rb +0 -46
  538. data/lib/one_gadget/builds/libc-2.22-6758f608b9326b54464784a72149d9991ce839d1.rb +0 -46
  539. data/lib/one_gadget/builds/libc-2.22-68afe0b2e7d234d495d38ec6bf35257a42f229de.rb +0 -52
  540. data/lib/one_gadget/builds/libc-2.22-695c07ac1193aad1d8ee9871ee425e5653408a4d.rb +0 -46
  541. data/lib/one_gadget/builds/libc-2.22-6c9019c65a7a835172e1e88ca2f88d1f14fb23e1.rb +0 -52
  542. data/lib/one_gadget/builds/libc-2.22-765dbc5efb8e378d36cd0742b6e5a65bd9046168.rb +0 -46
  543. data/lib/one_gadget/builds/libc-2.22-775336aa55e307ff5c730b375f8220b85ede2e34.rb +0 -52
  544. data/lib/one_gadget/builds/libc-2.22-7d3f57aba43d34ae3cfab2df04a3050efbd1dfed.rb +0 -46
  545. data/lib/one_gadget/builds/libc-2.22-84681ac612616253b2eb8e99e1b68836b7d68cac.rb +0 -46
  546. data/lib/one_gadget/builds/libc-2.22-87066f8392926c00ab4a5969f52aade616c1e314.rb +0 -52
  547. data/lib/one_gadget/builds/libc-2.22-871cd1cac63b0dcd8f2cdd231291f9f89fe7c099.rb +0 -52
  548. data/lib/one_gadget/builds/libc-2.22-87e1ed146ef347cf326650e230524a6c8d4ed43d.rb +0 -46
  549. data/lib/one_gadget/builds/libc-2.22-8c48d3a9f8dea201de2948aa7f78c6a42ffa47cf.rb +0 -46
  550. data/lib/one_gadget/builds/libc-2.22-916b3d65c4f43150dea643a905c1a2a68efc3fb6.rb +0 -52
  551. data/lib/one_gadget/builds/libc-2.22-91dee95c3183246a5332357b814a08ba9c05d999.rb +0 -46
  552. data/lib/one_gadget/builds/libc-2.22-91fcf48a9dd99f320b205a2feef18c2edfdbaeba.rb +0 -42
  553. data/lib/one_gadget/builds/libc-2.22-92f57ef98cf5dc8e4d6b5df5cd1b9260b7e9975a.rb +0 -46
  554. data/lib/one_gadget/builds/libc-2.22-94075f4ca5cff8f90934c9e1706db8022e7d4ba1.rb +0 -46
  555. data/lib/one_gadget/builds/libc-2.22-94140487ddd020e65cb6c3f9ae09275ca91dc47c.rb +0 -46
  556. data/lib/one_gadget/builds/libc-2.22-94b271ac2dedc103ec8d042bb40a418a042dceb9.rb +0 -42
  557. data/lib/one_gadget/builds/libc-2.22-9686e55d792fbbcc0ae8589a69c8b15d2444ac65.rb +0 -46
  558. data/lib/one_gadget/builds/libc-2.22-a352f9564e9d19391f222c67e5c64e09f949df4e.rb +0 -42
  559. data/lib/one_gadget/builds/libc-2.22-a506f6e38353adbb19bd22872b2fa8831c32c63d.rb +0 -52
  560. data/lib/one_gadget/builds/libc-2.22-a5a6daa9eb710b5fc311bdd17696bb25e98d9dab.rb +0 -46
  561. data/lib/one_gadget/builds/libc-2.22-a61e9f882f22a77b803a1fa28912b2636913ea56.rb +0 -52
  562. data/lib/one_gadget/builds/libc-2.22-ac771fb8769897775bb6df04fe982d7a79684c8a.rb +0 -46
  563. data/lib/one_gadget/builds/libc-2.22-b213a4604fc2c8fd113ae890a97c3c2ad4022ceb.rb +0 -46
  564. data/lib/one_gadget/builds/libc-2.22-b916e3c1d80069d0209f6376b33e42b75ec49eda.rb +0 -52
  565. data/lib/one_gadget/builds/libc-2.22-b941d9b157b159697c7cbfa154c410b23be1a7af.rb +0 -42
  566. data/lib/one_gadget/builds/libc-2.22-bdbc01430dbd0c80011dea9852f3ae257bcf3138.rb +0 -46
  567. data/lib/one_gadget/builds/libc-2.22-bfdfa3833107e0041ab896c1dbfd0a4f1c4fec77.rb +0 -52
  568. data/lib/one_gadget/builds/libc-2.22-c2931cdba68412c1b871f960b4005f70847b29c3.rb +0 -52
  569. data/lib/one_gadget/builds/libc-2.22-c65d9bac0e2687bd08337088466a686c40479e5d.rb +0 -46
  570. data/lib/one_gadget/builds/libc-2.22-c6799f7a3df15cf4c4b5c273686e7cb3283e0337.rb +0 -52
  571. data/lib/one_gadget/builds/libc-2.22-cb354ede0283a824c81183b1ffb6add90255edb6.rb +0 -52
  572. data/lib/one_gadget/builds/libc-2.22-cee6e82b12f7c94f715fc96dcd4544a44997dbb5.rb +0 -46
  573. data/lib/one_gadget/builds/libc-2.22-d0516d4ba12ccc659906a5f122f8637279970bf4.rb +0 -52
  574. data/lib/one_gadget/builds/libc-2.22-d088eee45f6cbd649b53ae99b68a91823d86c6d6.rb +0 -46
  575. data/lib/one_gadget/builds/libc-2.22-dcc06a908986f225fded745f7f884bf50fd5b434.rb +0 -42
  576. data/lib/one_gadget/builds/libc-2.22-dd900e0adc14d176fe33f2b6e5d8dbe2bacb48d0.rb +0 -46
  577. data/lib/one_gadget/builds/libc-2.22-e1d7f9459324fd489e82a931f9bbe3b10cfc4436.rb +0 -42
  578. data/lib/one_gadget/builds/libc-2.22-e259f9732c7269eccd67dc7f8bbceded2a909972.rb +0 -52
  579. data/lib/one_gadget/builds/libc-2.22-e7e6d42611b69819d39439c2ee93305f6305ed90.rb +0 -46
  580. data/lib/one_gadget/builds/libc-2.22-eb0fe6bc985d025bfeeb207924823e7c2c7a77e6.rb +0 -46
  581. data/lib/one_gadget/builds/libc-2.22-eb2c0cc31e0d158b487d1010b30fa7ed358fcbd7.rb +0 -42
  582. data/lib/one_gadget/builds/libc-2.22-ee60bf5cd327f0aa534fd8c37a8733e942707a0a.rb +0 -46
  583. data/lib/one_gadget/builds/libc-2.22-efd6084786349d5763237b1caeb3d5d9f61dce75.rb +0 -46
  584. data/lib/one_gadget/builds/libc-2.22-f21f4b63fbd354522a1c37a982da46973b6a95ef.rb +0 -52
  585. data/lib/one_gadget/builds/libc-2.22-f43f58b45b8c7fe20d3c3c9f812f50a7755615d3.rb +0 -46
  586. data/lib/one_gadget/builds/libc-2.22-fa6cf8c4105217d0cf2609ab83ec3c9d4d3c5d41.rb +0 -46
  587. data/lib/one_gadget/builds/libc-2.22-faef9af5a88432766d76d7da2cf961c75b6e0e0b.rb +0 -52
  588. data/lib/one_gadget/builds/libc-2.22-ff7fbdaaef014460825b4ef5848e86834aa3880c.rb +0 -42
  589. data/lib/one_gadget/builds/libc-2.23-012683a92d161c37d51d89711c4870ba30904c3d.rb +0 -46
  590. data/lib/one_gadget/builds/libc-2.23-088165fba081e659b7ea6463eab7bcac70363656.rb +0 -46
  591. data/lib/one_gadget/builds/libc-2.23-088a6e00a1814622219f346b41e775b8dd46c518.rb +0 -46
  592. data/lib/one_gadget/builds/libc-2.23-0ae3de55854513a2a7d4979337176c0717efce8a.rb +0 -46
  593. data/lib/one_gadget/builds/libc-2.23-0c23056feb23daf0cb1d2f90e153b5f892df83c6.rb +0 -46
  594. data/lib/one_gadget/builds/libc-2.23-11ae3441756e6c2ebf5c962434bf9f07b3ea3deb.rb +0 -46
  595. data/lib/one_gadget/builds/libc-2.23-131c254aed46e6a24cb08f3abe802ea0ef50e5f9.rb +0 -46
  596. data/lib/one_gadget/builds/libc-2.23-1800a4bdb0c42a7bb7a570ed90724fa04de8a4fe.rb +0 -46
  597. data/lib/one_gadget/builds/libc-2.23-18f761287ed46e213bec29c2e440e73fd72373be.rb +0 -46
  598. data/lib/one_gadget/builds/libc-2.23-1b1d19add6d861e16e04e4b8e9864a7bc16c1327.rb +0 -46
  599. data/lib/one_gadget/builds/libc-2.23-1ca54a6e0d76188105b12e49fe6b8019bf08803a.rb +0 -46
  600. data/lib/one_gadget/builds/libc-2.23-1e80992437b5e1cb76bf56605ee8991e76e85f69.rb +0 -42
  601. data/lib/one_gadget/builds/libc-2.23-1f1cf1c7ff279aa37add352423fd850e06be1098.rb +0 -46
  602. data/lib/one_gadget/builds/libc-2.23-2052ef79d1bb69a8f5c5340eee984f2659b75e39.rb +0 -46
  603. data/lib/one_gadget/builds/libc-2.23-233dde1d38ecdc54bef352f1b5ee4e007ec9df26.rb +0 -46
  604. data/lib/one_gadget/builds/libc-2.23-2891dc7656eed3d8d4f255c41ca6a28caf532079.rb +0 -46
  605. data/lib/one_gadget/builds/libc-2.23-29e38445a740bba5a77b86691e3c51a7e48dc79b.rb +0 -46
  606. data/lib/one_gadget/builds/libc-2.23-2aedae2bb27ac85cf14c36da79747dd88bb2b633.rb +0 -46
  607. data/lib/one_gadget/builds/libc-2.23-2c4ed1bebc9ede033fbbb422f84da9a93cacd88e.rb +0 -46
  608. data/lib/one_gadget/builds/libc-2.23-30773be8cf5bfed9d910c8473dd44eaab2e705ab.rb +0 -49
  609. data/lib/one_gadget/builds/libc-2.23-336976f90c600be7c95a68be6c2f0652cc22347c.rb +0 -46
  610. data/lib/one_gadget/builds/libc-2.23-3612e20f3e2705dcf8fd81ac494a0e20b9e16764.rb +0 -46
  611. data/lib/one_gadget/builds/libc-2.23-369de0e1d833caa693af17f17c83ba937f0a4dad.rb +0 -49
  612. data/lib/one_gadget/builds/libc-2.23-39fa51127c50ad10c32a19e0a1a587a05b8d450b.rb +0 -46
  613. data/lib/one_gadget/builds/libc-2.23-408d0e9e7720923def88a5aea9988cbaa0142b64.rb +0 -46
  614. data/lib/one_gadget/builds/libc-2.23-414c35398dffe74ac9ed945e176d8fd99446d9de.rb +0 -46
  615. data/lib/one_gadget/builds/libc-2.23-49bd3f83d9b34b9f043e68624271c5ef90820021.rb +0 -46
  616. data/lib/one_gadget/builds/libc-2.23-4df2711ee6c911fe238cf10f43b08099201e57ec.rb +0 -40
  617. data/lib/one_gadget/builds/libc-2.23-54128118082b61b311247f8fa6672b8df938748a.rb +0 -46
  618. data/lib/one_gadget/builds/libc-2.23-5d45b750d14b7b6ea11c2b57c73746b61592437b.rb +0 -46
  619. data/lib/one_gadget/builds/libc-2.23-5d511bfe32efcb567933d13ab9dc87f0a02d3651.rb +0 -42
  620. data/lib/one_gadget/builds/libc-2.23-60ea46dff84c256650d44c1a32ca609168bee1a6.rb +0 -46
  621. data/lib/one_gadget/builds/libc-2.23-635101aec7213fdc442419bf65a92047a862ff32.rb +0 -46
  622. data/lib/one_gadget/builds/libc-2.23-6462f7cc95a34bd03f42ad150211db68fcf27d44.rb +0 -46
  623. data/lib/one_gadget/builds/libc-2.23-697f7d05a70ecde852a2eed480bea6a6779b4a27.rb +0 -46
  624. data/lib/one_gadget/builds/libc-2.23-72ac40020fbf2b0b6a16b5ff4e0efdff1e71fa92.rb +0 -29
  625. data/lib/one_gadget/builds/libc-2.23-7598dcdd3567efa7befebc6d97977e83d758c649.rb +0 -46
  626. data/lib/one_gadget/builds/libc-2.23-78e2b4f1945abc8f1db6d82acf6d1ef593d01e06.rb +0 -46
  627. data/lib/one_gadget/builds/libc-2.23-89cc3bb9361ad139a1967462175759416c9dc82b.rb +0 -46
  628. data/lib/one_gadget/builds/libc-2.23-8b51f0e99fae7170859f393ba0118cc955c337b9.rb +0 -46
  629. data/lib/one_gadget/builds/libc-2.23-8c436e0b35bb19702fba4b5effb3f94edecc3c46.rb +0 -45
  630. data/lib/one_gadget/builds/libc-2.23-8ccf267bc9d0f4706559d85cbeb704782dae9ede.rb +0 -46
  631. data/lib/one_gadget/builds/libc-2.23-946025a5cad7b5f2dfbaebc6ebd1fcc004349b48.rb +0 -40
  632. data/lib/one_gadget/builds/libc-2.23-94ab3e046784e5da65532a9aded8555c3bdc3778.rb +0 -46
  633. data/lib/one_gadget/builds/libc-2.23-9600225be309ec27d01385dd52df9196e86ed3c0.rb +0 -46
  634. data/lib/one_gadget/builds/libc-2.23-961068caa1dcd5005b27c7c6abe32e94102eae3f.rb +0 -46
  635. data/lib/one_gadget/builds/libc-2.23-96f8c796364693379a2a0c753133fecbd1c52434.rb +0 -46
  636. data/lib/one_gadget/builds/libc-2.23-99de357f509368d89f95b0e92b0d5227e8b8addc.rb +0 -46
  637. data/lib/one_gadget/builds/libc-2.23-9a6b57c7a4f93d7e54e61bccb7df996c8bc58141.rb +0 -46
  638. data/lib/one_gadget/builds/libc-2.23-9e85392b0c4e3e2c8fdc063dfda4c3d0e0156e54.rb +0 -46
  639. data/lib/one_gadget/builds/libc-2.23-a594a9c73a6067ab00a0f8db78d665be147acdc1.rb +0 -38
  640. data/lib/one_gadget/builds/libc-2.23-a6fe771348e04d552fa1e6dcaf610699719bdd0e.rb +0 -46
  641. data/lib/one_gadget/builds/libc-2.23-a71b122dbcd9503767b6f176d7745749fb4aaf89.rb +0 -46
  642. data/lib/one_gadget/builds/libc-2.23-ac333186c6b532511a68d16aca4c61422eb772da.rb +0 -46
  643. data/lib/one_gadget/builds/libc-2.23-b078f2c07ab3751dbcbc3fbd2a11a8a162c35576.rb +0 -42
  644. data/lib/one_gadget/builds/libc-2.23-b2994712adbb4db7b768554149443ddee829cb91.rb +0 -46
  645. data/lib/one_gadget/builds/libc-2.23-b5381a457906d279073822a5ceb24c4bfef94ddb.rb +0 -49
  646. data/lib/one_gadget/builds/libc-2.23-b8aaf9d529588ee96e6e399ab8a15cbd58ab8b54.rb +0 -46
  647. data/lib/one_gadget/builds/libc-2.23-b978afd6ca2cf3f8768d6055581ece3c3e7d7b27.rb +0 -46
  648. data/lib/one_gadget/builds/libc-2.23-bde4e8b0230b1b474cd8a1ca6e9f81bb2b438914.rb +0 -46
  649. data/lib/one_gadget/builds/libc-2.23-c0a199289365088782dcaceab6a81721d0d8ae0c.rb +0 -46
  650. data/lib/one_gadget/builds/libc-2.23-c0cc47b9f732f8150eb2bbfb18d0d60a7b3564a9.rb +0 -46
  651. data/lib/one_gadget/builds/libc-2.23-c4fd86ec1eed57a09c79ce601f6c6e3796f574df.rb +0 -49
  652. data/lib/one_gadget/builds/libc-2.23-cbfa941a8eb7a11e4f90e81b66fcd5a820995d7c.rb +0 -38
  653. data/lib/one_gadget/builds/libc-2.23-d10743a8f3a9a7a2e9807b1af78026c0b5363f6b.rb +0 -46
  654. data/lib/one_gadget/builds/libc-2.23-d10fbfd9328f5ffaca50aa93562cb3bfb618fbcc.rb +0 -46
  655. data/lib/one_gadget/builds/libc-2.23-d1df77a9cc06ba60c213852b01bc24282e49696a.rb +0 -46
  656. data/lib/one_gadget/builds/libc-2.23-d26149b8dc15c0c3ea8a5316583757f69b39e037.rb +0 -29
  657. data/lib/one_gadget/builds/libc-2.23-d2be9dbf540a6ca8b559ddfbd17f47b53e84ba8d.rb +0 -46
  658. data/lib/one_gadget/builds/libc-2.23-d61f734abbd95e2ddeab19046141020d00aa2aaf.rb +0 -42
  659. data/lib/one_gadget/builds/libc-2.23-d67449e7e9672f074e72fd37ffa9335c6c483bc8.rb +0 -43
  660. data/lib/one_gadget/builds/libc-2.23-dcd02728e55c40d4a4b0d1482abe75cf2b853c2e.rb +0 -46
  661. data/lib/one_gadget/builds/libc-2.23-dd5192a769e33ed6ca68a6ab5740ff9e8ec678a7.rb +0 -46
  662. data/lib/one_gadget/builds/libc-2.23-e388b883ef50189a2eb5e6c7931c52e03761a7fd.rb +0 -46
  663. data/lib/one_gadget/builds/libc-2.23-e7b96675bca2ca2e2e746ebcb706d9236178564c.rb +0 -40
  664. data/lib/one_gadget/builds/libc-2.23-e7c57c7dc7a4d8ca964993f19fd8b0fc4f72b617.rb +0 -46
  665. data/lib/one_gadget/builds/libc-2.23-e8df4c3d58e99c87f9b22655e9180c7ac31cb44f.rb +0 -46
  666. data/lib/one_gadget/builds/libc-2.23-edceed30099baad51871c5fc277daf9b74dc726a.rb +0 -46
  667. data/lib/one_gadget/builds/libc-2.23-ee0b5a0f65e25f536a868d84e1d912403b56e742.rb +0 -46
  668. data/lib/one_gadget/builds/libc-2.23-ee525f6c9b018c094beedd17b87a4573d7ea7e2e.rb +0 -46
  669. data/lib/one_gadget/builds/libc-2.23-f0c2e03955a845c9a7f9c85228b12c9700d66c50.rb +0 -46
  670. data/lib/one_gadget/builds/libc-2.23-f202f01f10e845e14e7d8ca44cf5d9e4742fca6a.rb +0 -40
  671. data/lib/one_gadget/builds/libc-2.23-f2f2f2af4f3e8597cca1fdff1008a834c78de42b.rb +0 -46
  672. data/lib/one_gadget/builds/libc-2.23-f303ce47c562225a4f3475170333494965760a6a.rb +0 -46
  673. data/lib/one_gadget/builds/libc-2.23-f33f3937b8f458ffd96cf10a22deea1bd85ac61a.rb +0 -46
  674. data/lib/one_gadget/builds/libc-2.23-f4490657edfef482025fff60e85acd5928e0d05b.rb +0 -46
  675. data/lib/one_gadget/builds/libc-2.23-ffb3662a7bc5e136fa8f464fc14ec23efb8d1817.rb +0 -40
  676. data/lib/one_gadget/builds/libc-2.23.90-203feaf8a7e40cef8a75568a406a22fdeda94f8b.rb +0 -40
  677. data/lib/one_gadget/builds/libc-2.23.90-392b643118f919a1827477e978d9cea2b09a34fc.rb +0 -46
  678. data/lib/one_gadget/builds/libc-2.23.90-52e411aed4443fbbcb9706fffa2362e4a108f28f.rb +0 -46
  679. data/lib/one_gadget/builds/libc-2.23.90-604d873b711edeb971328656c4c17bbc15c7427f.rb +0 -46
  680. data/lib/one_gadget/builds/libc-2.23.90-63fbdf3e3928f6dc2bcac10e28aa233a625a3d27.rb +0 -46
  681. data/lib/one_gadget/builds/libc-2.23.90-7439c4311f0dd7307f78c1b5530f52a590230e45.rb +0 -46
  682. data/lib/one_gadget/builds/libc-2.23.90-b23fcdbc7bead3c59600e0a6acfe9220c42e1b93.rb +0 -46
  683. data/lib/one_gadget/builds/libc-2.23.90-c5238226a11b5538d56c713c97db1a36722e6322.rb +0 -40
  684. data/lib/one_gadget/builds/libc-2.23.90-e1b43c632d35649e9b128528994426e34ae40d1a.rb +0 -46
  685. data/lib/one_gadget/builds/libc-2.23.90-e9ab765fb32204de2215d6117dcbc1fb92f26b9a.rb +0 -40
  686. data/lib/one_gadget/builds/libc-2.23.90-ef3765f1e2595771cefa96291c647d0eff8a81e0.rb +0 -40
  687. data/lib/one_gadget/builds/libc-2.23.90-f149edaf4dee34b38f831bf0914af2ecf0a1a317.rb +0 -46
  688. data/lib/one_gadget/builds/libc-2.24-024385baa7aaf9c62ae336e896bcf245dda0fc01.rb +0 -46
  689. data/lib/one_gadget/builds/libc-2.24-04b6f2a9e244a36a9f107febf832bbadea9f252c.rb +0 -46
  690. data/lib/one_gadget/builds/libc-2.24-0b88546716e2f1924986596ee7cc9215df89c6f5.rb +0 -46
  691. data/lib/one_gadget/builds/libc-2.24-0c11fd6524ef7a7da877f940fba181ed746edb0a.rb +0 -46
  692. data/lib/one_gadget/builds/libc-2.24-0f523a27b7460f50befd3d281238c6f189c92d84.rb +0 -46
  693. data/lib/one_gadget/builds/libc-2.24-1c3ec3a011b1005cb1c2c32fc6dbc4e6e9cef4bb.rb +0 -45
  694. data/lib/one_gadget/builds/libc-2.24-1da8c8ac3c71c30040cf58b563ae48e39bbae86f.rb +0 -40
  695. data/lib/one_gadget/builds/libc-2.24-1ddd6fca9cd87c66e6a19df018f5992e9fa6453d.rb +0 -46
  696. data/lib/one_gadget/builds/libc-2.24-1f253610e390e5237eb7949212e08166fba3ca4b.rb +0 -46
  697. data/lib/one_gadget/builds/libc-2.24-1f7bdfb9a24714835cee6e6597ea7aa782821371.rb +0 -46
  698. data/lib/one_gadget/builds/libc-2.24-206b2bb216b6cdb6b1be565a6fcd29f3862db060.rb +0 -52
  699. data/lib/one_gadget/builds/libc-2.24-20cbb98b62f46ee16b182d1b357146577c40ebb7.rb +0 -40
  700. data/lib/one_gadget/builds/libc-2.24-236e52c7896f5403d8065cf3965fdb2d31d56891.rb +0 -46
  701. data/lib/one_gadget/builds/libc-2.24-24b1296687d36e24bd48b8c412157d94f074ecc2.rb +0 -40
  702. data/lib/one_gadget/builds/libc-2.24-253debb34a7d493c0b8e2d6db2079e3d680459f5.rb +0 -40
  703. data/lib/one_gadget/builds/libc-2.24-26e84118fee5788eb5d8dda66b7e7f029d2c7800.rb +0 -52
  704. data/lib/one_gadget/builds/libc-2.24-2ee9e1740da616757f2e6d5ba58576c0c7302fff.rb +0 -40
  705. data/lib/one_gadget/builds/libc-2.24-30acfe88fed30ad3f8cb88425b80ea96899655aa.rb +0 -46
  706. data/lib/one_gadget/builds/libc-2.24-33801a6f55c5c3cdf7d83590b433adcbab08a688.rb +0 -40
  707. data/lib/one_gadget/builds/libc-2.24-349119af9e223829ea24f6b7226bdff0182e73f2.rb +0 -52
  708. data/lib/one_gadget/builds/libc-2.24-35764bd71c58942e9131e3547b7c343098212d03.rb +0 -46
  709. data/lib/one_gadget/builds/libc-2.24-389260a6758c3f1dbc741c197e747341ed277cd2.rb +0 -46
  710. data/lib/one_gadget/builds/libc-2.24-3b24749bb184473f81819312e3d86903915eaf65.rb +0 -46
  711. data/lib/one_gadget/builds/libc-2.24-3ea4c67e60e49b8164b692166115bbf927e521db.rb +0 -45
  712. data/lib/one_gadget/builds/libc-2.24-3f89db5baa7e88162377fab6a1590f732a355401.rb +0 -45
  713. data/lib/one_gadget/builds/libc-2.24-3fce81d490804af9759c70bf197380bc05a584c2.rb +0 -46
  714. data/lib/one_gadget/builds/libc-2.24-43adbb1e7368c94fba1ba9020d8ef0808bff5bc4.rb +0 -40
  715. data/lib/one_gadget/builds/libc-2.24-43faee19af5e1d20163c6492862fca1a4146b668.rb +0 -40
  716. data/lib/one_gadget/builds/libc-2.24-45adab2b0ad8604e35eeea0b30d6ec1ad11642af.rb +0 -40
  717. data/lib/one_gadget/builds/libc-2.24-46bb6303e03d21ec9b79334370e1b39a51f883b1.rb +0 -46
  718. data/lib/one_gadget/builds/libc-2.24-497931f8d2346a6d0e300a65d8fc6106c6c88c15.rb +0 -46
  719. data/lib/one_gadget/builds/libc-2.24-4d0bb76f378375d584a373929f6d5b695f53db99.rb +0 -40
  720. data/lib/one_gadget/builds/libc-2.24-4dac034d41342a93593b3e18aa05f4b69c2909c9.rb +0 -45
  721. data/lib/one_gadget/builds/libc-2.24-4fa7401566d6b3e2c7ee5df3b4d85a01f85b595c.rb +0 -46
  722. data/lib/one_gadget/builds/libc-2.24-5284cbfbd543755c2fa4df64a20ccb14e7ded30c.rb +0 -46
  723. data/lib/one_gadget/builds/libc-2.24-53bab59259db20458dc7d753dd2950916f6e47de.rb +0 -46
  724. data/lib/one_gadget/builds/libc-2.24-568d20b7e0d08bc282fb42ae405c7054e4209ede.rb +0 -40
  725. data/lib/one_gadget/builds/libc-2.24-595aeaf311d354bbcd3f311e218f6b40fe711046.rb +0 -46
  726. data/lib/one_gadget/builds/libc-2.24-5a75868ead9dbb03eb4d668ff2918f341f949387.rb +0 -46
  727. data/lib/one_gadget/builds/libc-2.24-5b72576ff331e93852355123afecdec70fd247b5.rb +0 -52
  728. data/lib/one_gadget/builds/libc-2.24-6194e9b483a157d38ab633a5bf3c37f9ed6b7e04.rb +0 -40
  729. data/lib/one_gadget/builds/libc-2.24-6a5885d005a0e25074da79038453af3c1bbd16a1.rb +0 -40
  730. data/lib/one_gadget/builds/libc-2.24-6a6d4ead4f4d511091e34c8baebaab04b97913e0.rb +0 -46
  731. data/lib/one_gadget/builds/libc-2.24-6d3ffad6407f2ea71f9121d761426f3a917f4216.rb +0 -46
  732. data/lib/one_gadget/builds/libc-2.24-6dd40dc4bc5ee908b857c00c1b2a00c58ebc1596.rb +0 -45
  733. data/lib/one_gadget/builds/libc-2.24-756da9d194e16bccf2c342a12d8ea01e677fcba7.rb +0 -40
  734. data/lib/one_gadget/builds/libc-2.24-7a7fafb866f1680656f7343e9d38fa76986bcfff.rb +0 -45
  735. data/lib/one_gadget/builds/libc-2.24-7e0f1b3a8efe3adcf3080b20447ac4bd47aaf489.rb +0 -40
  736. data/lib/one_gadget/builds/libc-2.24-805005b60c0c3e63eb593a5041fc9f7803e3b87d.rb +0 -46
  737. data/lib/one_gadget/builds/libc-2.24-856e263a6c8431b34f1ab69b55abbe453a135c52.rb +0 -45
  738. data/lib/one_gadget/builds/libc-2.24-8a683c08dbc27e1ceab72d87cd00b5d6208f7620.rb +0 -40
  739. data/lib/one_gadget/builds/libc-2.24-8eb1e49d70f349433d3d4a712b4746c73481012d.rb +0 -46
  740. data/lib/one_gadget/builds/libc-2.24-91b0020fb992b67e3c368576943fde81e4ec7ec9.rb +0 -40
  741. data/lib/one_gadget/builds/libc-2.24-9378343c5442ef04933110045638b2daafa16098.rb +0 -46
  742. data/lib/one_gadget/builds/libc-2.24-976f2a94a6a1db73c935bce8db1e5a28a46d8535.rb +0 -46
  743. data/lib/one_gadget/builds/libc-2.24-980296526a2060e4e53dfa8ded76917c3f9b851c.rb +0 -46
  744. data/lib/one_gadget/builds/libc-2.24-9a006ea92b333aa035fdecc8dc0b28e1d04edd37.rb +0 -46
  745. data/lib/one_gadget/builds/libc-2.24-9ae48d5843f29af366655a00fb0636db91328abb.rb +0 -40
  746. data/lib/one_gadget/builds/libc-2.24-9b7db6636c9f2f03c9523b02db229741e2250550.rb +0 -40
  747. data/lib/one_gadget/builds/libc-2.24-9e638553dc7a08748d03c42455ecd6bb9bd8f8cd.rb +0 -46
  748. data/lib/one_gadget/builds/libc-2.24-a4c01d397b6584f7040ef266b16a5d4da0b7a087.rb +0 -52
  749. data/lib/one_gadget/builds/libc-2.24-a51ace667ccae6a8887837efb18259a906704bed.rb +0 -46
  750. data/lib/one_gadget/builds/libc-2.24-a822e789c3428254f309f81600b9e5ae551a3461.rb +0 -46
  751. data/lib/one_gadget/builds/libc-2.24-aad7dbe330f23ea00ca63daf793b766b51aceb5d.rb +0 -52
  752. data/lib/one_gadget/builds/libc-2.24-acd08eb60d44e32e85530f0537d46f8cd422403e.rb +0 -46
  753. data/lib/one_gadget/builds/libc-2.24-b81a06f0ac241c4aa8860602d9abcc903adbb675.rb +0 -46
  754. data/lib/one_gadget/builds/libc-2.24-b8a944084a03aec90d871ca8a5fac48801cc064d.rb +0 -46
  755. data/lib/one_gadget/builds/libc-2.24-b95a6603e6113924f82409ff65e6ed1514afd3db.rb +0 -40
  756. data/lib/one_gadget/builds/libc-2.24-bb0d156759d9bdfec06f5decd1c03785bcbc0ba1.rb +0 -46
  757. data/lib/one_gadget/builds/libc-2.24-bccffaa4c34e166b9c09e8802ce09989d1e8f46a.rb +0 -40
  758. data/lib/one_gadget/builds/libc-2.24-be6d412ecc4816c46eb49e750b02f714a9131c4e.rb +0 -46
  759. data/lib/one_gadget/builds/libc-2.24-c116abd24efe14f6dc2f98cef3d673934f6d66d0.rb +0 -42
  760. data/lib/one_gadget/builds/libc-2.24-c1fd7dc1c8a6915e5f7a7f24a5901a239d473f08.rb +0 -46
  761. data/lib/one_gadget/builds/libc-2.24-c451b072ff6aa62ba6e054c06e633fa297a3a7eb.rb +0 -40
  762. data/lib/one_gadget/builds/libc-2.24-c5a0679981d0258465ddba6b975c9340cbf20d22.rb +0 -40
  763. data/lib/one_gadget/builds/libc-2.24-c62f8c5ce9f5304f054922d39d0c0fa94d9e9531.rb +0 -46
  764. data/lib/one_gadget/builds/libc-2.24-c7d3ac73ddd0865d350bd570771cf3a964a1ddbd.rb +0 -46
  765. data/lib/one_gadget/builds/libc-2.24-c9133ae8d86b5d469422e0c51a19e7910ebeae41.rb +0 -40
  766. data/lib/one_gadget/builds/libc-2.24-cc7e13208dfc283e75a9491f8507429f647eac05.rb +0 -40
  767. data/lib/one_gadget/builds/libc-2.24-d2a8a8ac188a6c3bafa4813a3d2789240ee49489.rb +0 -46
  768. data/lib/one_gadget/builds/libc-2.24-d67af93d54c07bbe5d252ef6f176ec77b866c786.rb +0 -46
  769. data/lib/one_gadget/builds/libc-2.24-d8ba284042773fed1189bcf927960999f4c1de55.rb +0 -45
  770. data/lib/one_gadget/builds/libc-2.24-da518391ad926bb7535f2095df0be265180eeed5.rb +0 -40
  771. data/lib/one_gadget/builds/libc-2.24-dab413a7e3b33dde527af308a09a55ade6b41e84.rb +0 -40
  772. data/lib/one_gadget/builds/libc-2.24-dc799b9197929f88cebc6aa72e3be388cacfb1df.rb +0 -46
  773. data/lib/one_gadget/builds/libc-2.24-deefae132c5a39ba892bc189edd91f73c1ea1f14.rb +0 -40
  774. data/lib/one_gadget/builds/libc-2.24-dff06414a29b97b865ef938e06a7751fe8b1b2d0.rb +0 -46
  775. data/lib/one_gadget/builds/libc-2.24-e0206d9b8d7ad3abc39a94dbc37bb3b42c9f1345.rb +0 -46
  776. data/lib/one_gadget/builds/libc-2.24-e5dc6c0caa39828fa10ed37e642723a581acdb6d.rb +0 -40
  777. data/lib/one_gadget/builds/libc-2.24-e7de387eec0b57da248cc4e74edefcfcb55bd204.rb +0 -45
  778. data/lib/one_gadget/builds/libc-2.24-eaadebbded05e24bc9853c39b2241436f96d41ef.rb +0 -46
  779. data/lib/one_gadget/builds/libc-2.24-eb6b0b1e1c5cf4579e66eadb083885884dc0b648.rb +0 -40
  780. data/lib/one_gadget/builds/libc-2.24-f5ffc1b2b1282d79097f4ce84b519d326dce1247.rb +0 -40
  781. data/lib/one_gadget/builds/libc-2.24-fb431a54ddae802fd1c59850cbbc408a05d3deb8.rb +0 -46
  782. data/lib/one_gadget/builds/libc-2.24-fc121fe8b1eaa6ea0babbc3b8ce6e12adfcc3719.rb +0 -45
  783. data/lib/one_gadget/builds/libc-2.24-fe976940471b3f683eeebb268f095b7ff1c898c1.rb +0 -46
  784. data/lib/one_gadget/builds/libc-2.25-58c735bc7b19b0aeb395cce70cf63bd62ac75e4a.rb +0 -52
  785. data/lib/one_gadget/builds/libc-2.25-912fc00c0da67045111928bd5c8a350e5be18c41.rb +0 -52
  786. data/lib/one_gadget/builds/libc-2.25-e5eb6347f0629b37bf698200022a683b7efb10ed.rb +0 -46
  787. data/lib/one_gadget/builds/libc-2.25-eae5038c2b9ae67d9eda345aa9fbe0a7185ab436.rb +0 -52
  788. data/lib/one_gadget/builds/libc-2.26-1c39b3b3faa2a2cbb0fa0b6845b29332562262d3.rb +0 -52
  789. data/lib/one_gadget/builds/libc-2.26-2104f3d4ad5cf68603afbe7ba1a17f5ac99c5988.rb +0 -43
  790. data/lib/one_gadget/builds/libc-2.26-3b850bf60461afbdd83317b248b3f687e52ff18e.rb +0 -52
  791. data/lib/one_gadget/builds/libc-2.26-499b381aaf00ce85ee5d4a12770ea369b30d2a41.rb +0 -52
  792. data/lib/one_gadget/builds/libc-2.26-4cc84abfe1fd26a485fc2b1b954c281ce9d358fd.rb +0 -52
  793. data/lib/one_gadget/builds/libc-2.26-4ea852c9d6a5084b8b58509b3b3d37d3d8cddb90.rb +0 -52
  794. data/lib/one_gadget/builds/libc-2.26-6d2b609f0c8e7b338f767b08c5ac712fac809d31.rb +0 -64
  795. data/lib/one_gadget/builds/libc-2.26-d4dd444f86cfc66c97c5e3eecb69fc5b86ea6539.rb +0 -52
  796. data/lib/one_gadget/builds/libc-2.26-ddcc13122ddbfe5e5ef77d4ebe66d124ae5762c2.rb +0 -64
  797. data/lib/one_gadget/builds/libc-2.26-f65648a832414f2144ce795d75b6045a1ec2e252.rb +0 -52
  798. data/lib/one_gadget/builds/libc-2.26-fb587bc4429e7d1b0de31a3b9ee8ae78ee797eb0.rb +0 -52
  799. data/lib/one_gadget/builds/libc-2.27-06a8004be6e10c4aeabbe0db74423ace392a2d6b.rb +0 -47
  800. data/lib/one_gadget/builds/libc-2.27-0e188ec5f09c187a7a92784d4b97aa251b15a93c.rb +0 -47
  801. data/lib/one_gadget/builds/libc-2.27-14cd15d2eb0bc25c89045873cf807f7533e4788d.rb +0 -47
  802. data/lib/one_gadget/builds/libc-2.27-2d1c5e0b85cb06ff47fa6fa088ec22cb6e06074e.rb +0 -47
  803. data/lib/one_gadget/builds/libc-2.27-4b06dfe2c46f5e537b3d0a310ab0bda11bcbd681.rb +0 -32
  804. data/lib/one_gadget/builds/libc-2.27-71f0f3074a929e519e85f6a5c03a7d1fd976bfe4.rb +0 -47
  805. data/lib/one_gadget/builds/libc-2.27-73cd526a553b3b47c6dd0d6dc62175263cdc646e.rb +0 -41
  806. data/lib/one_gadget/builds/libc-2.27-9dd0bb57f81671704475d1e5163405f7b4d4b454.rb +0 -41
  807. data/lib/one_gadget/builds/libc-2.27-a5e88eb34369fb48113b9eda7a92e07b372f3cb7.rb +0 -41
  808. data/lib/one_gadget/builds/libc-2.27-afdabd83c53f0fc60a059c3305c4f3b57198e51b.rb +0 -47
  809. data/lib/one_gadget/builds/libc-2.27-ba63c4a5f5c2b51e6e7e5df94017dc98b20e397a.rb +0 -47
  810. data/lib/one_gadget/builds/libc-2.27-cc6dd208d3af4bc505f599a90ef8af52f16116e4.rb +0 -41
  811. data/lib/one_gadget/builds/libc-2.27-ce450eb01a5e5acc7ce7b8c2633b02cc1093339e.rb +0 -47
  812. data/lib/one_gadget/builds/libc-2.27-cf1599aa8b3cb35f79dcaea7a8b48704ecf42a19.rb +0 -47
  813. data/lib/one_gadget/builds/libc-2.27-d1237c55f6778f53b369cf22ff81979b2fe340bb.rb +0 -41
  814. data/lib/one_gadget/builds/libc-2.27-d3cf764b2f97ac3efe366ddd07ad902fb6928fd7.rb +0 -47
  815. data/lib/one_gadget/builds/libc-2.27-d831493b564a8632d1da5cc0fe44af45713cfeb6.rb +0 -47
  816. data/lib/one_gadget/builds/libc-2.27-f4929d2a8af4629477103af6f1cfb3bebce80883.rb +0 -47
  817. data/lib/one_gadget/builds/libc-2.28-26b3c1a40c8a0bd026975a262774bf52aec55107.rb +0 -44
  818. data/lib/one_gadget/builds/libc-2.28-44f5a3efb0e5733fa9d97e690cb36cd4c682bcdb.rb +0 -41
  819. data/lib/one_gadget/builds/libc-2.28-5784a31a1c26f6d2157e585205ebb63dd19ff90f.rb +0 -41
  820. data/lib/one_gadget/builds/libc-2.28-5b157f49586a3ca84d55837f97ff466767dd3445.rb +0 -59
  821. data/lib/one_gadget/builds/libc-2.28-65ed813688b116fdce9e866ad2fef2e734167337.rb +0 -50
  822. data/lib/one_gadget/builds/libc-2.28-6ee9454b96efa9e343f9e8105f2fa4529265ea05.rb +0 -50
  823. data/lib/one_gadget/builds/libc-2.29-2195ff86b0ddead43a7c08f46b95b0887cdb96fa.rb +0 -32
  824. data/lib/one_gadget/builds/libc-2.29-5b7203920d3d786ac40af8e0d5104683335f11be.rb +0 -74
  825. data/lib/one_gadget/builds/libc-2.29-6d8abbab5b004d65bfdf909fd4982103499cd1c9.rb +0 -23
  826. data/lib/one_gadget/builds/libc-2.29-85d5020664b11fd2708859275de41d5ab9d104cf.rb +0 -74
  827. data/lib/one_gadget/builds/libc-2.29-9a1100ebab15d22bbc31836b0656d2fa5a6a1252.rb +0 -23
  828. data/lib/one_gadget/builds/libc-2.29-a8af6c81cb28a37bf3a546970bf64224402f8bd4.rb +0 -74
  829. data/lib/one_gadget/builds/libc-2.29-c19c88c33b60742ca906e0f9f96fe31b8b79ea9c.rb +0 -74
  830. data/lib/one_gadget/builds/libc-2.29-d389232dd725501db38f08e2aca0b44ab3af314f.rb +0 -23
  831. data/lib/one_gadget/builds/libc-2.29-d561ec515222887a1e004555981169199d841024.rb +0 -83
  832. data/lib/one_gadget/builds/libc-2.30-00854a16b9b4b73893627ccb730d97907837e320.rb +0 -26
  833. data/lib/one_gadget/builds/libc-2.30-135c0b4a030ec9b6306ed6b621e1e0dedfd614a3.rb +0 -23
  834. data/lib/one_gadget/builds/libc-2.30-2155f455ad56bd871c8225bcca85ee25c1c197c4.rb +0 -107
  835. data/lib/one_gadget/builds/libc-2.30-33d1f350f13728651d74dd2a56bad1e4e4648f5e.rb +0 -74
  836. data/lib/one_gadget/builds/libc-2.30-3f72ae987c135c35f2e721c61991ec46df8816ab.rb +0 -32
  837. data/lib/one_gadget/builds/libc-2.30-4ab6143b59defc12c3d50d176c78b4e6e5a2c179.rb +0 -23
  838. data/lib/one_gadget/builds/libc-2.30-71373fd43ed6a83e0aab983c3a971e32d459e15f.rb +0 -38
  839. data/lib/one_gadget/builds/libc-2.30-75e3e2d9596aae251330ae7ef3f91a847fc62641.rb +0 -38
  840. data/lib/one_gadget/builds/libc-2.30-7a1e2ae26cef50584af2c60a5ad3a7ae3e9b1446.rb +0 -74
  841. data/lib/one_gadget/builds/libc-2.30-884362aa891ab565e4cf904cd60be984a7941acd.rb +0 -26
  842. data/lib/one_gadget/builds/libc-2.30-93abe093a13b9b10f83b5e6de4a63a0d29175c89.rb +0 -32
  843. data/lib/one_gadget/builds/libc-2.30-bef538440d5b4b0ac6b4575acb3aac4a65316061.rb +0 -26
  844. data/lib/one_gadget/builds/libc-2.30-c0a4471ee8f24f2ecc0ad1ccbd4633fa6fa36654.rb +0 -26
  845. data/lib/one_gadget/builds/libc-2.30-c60a7605ae87b9b40426e3123b12a91bfe2036f3.rb +0 -26
  846. data/lib/one_gadget/builds/libc-2.30-c841931c41e7affad89dfe70a45f01afafa9a37a.rb +0 -32
  847. data/lib/one_gadget/builds/libc-2.30-cbe9cff3c43b979739af1681b61a3d585725577b.rb +0 -107
  848. data/lib/one_gadget/builds/libc-2.30-cd779a06a5df37cdad8dfcfa12cb2c8db36f62f4.rb +0 -26
  849. data/lib/one_gadget/builds/libc-2.30-dc43d2c2d727158000c9bef6d47e17722d41ec2d.rb +0 -26
  850. data/lib/one_gadget/builds/libc-2.30-e3e238714a7998a958651faa0a5e97fafa229ec3.rb +0 -26
  851. data/lib/one_gadget/builds/libc-2.30-f07144cc3d0ac50415f3a2e061be6da672c914ba.rb +0 -74
  852. data/lib/one_gadget/builds/libc-2.30-f44469d65b4efd2e5951513ed7cbf773657f1283.rb +0 -74
  853. data/lib/one_gadget/builds/libc-2.31-012f3f1e614cb9c829b8d1590d228cc6a9506a03.rb +0 -26
  854. data/lib/one_gadget/builds/libc-2.31-05dd8f45f3f82869e5ca8cb214475816e41f469a.rb +0 -26
  855. data/lib/one_gadget/builds/libc-2.31-099b9225bcb0d019d9d60884be583eb31bb5f44e.rb +0 -122
  856. data/lib/one_gadget/builds/libc-2.31-0d1b3211736c4ca528a32ea0d565d41a2ede3b58.rb +0 -80
  857. data/lib/one_gadget/builds/libc-2.31-0df979b8b244294bbc29bbe8f7f6dd6bf89c6820.rb +0 -26
  858. data/lib/one_gadget/builds/libc-2.31-12e412d1938ec3ff79751f0e85f31bc52f7e3722.rb +0 -80
  859. data/lib/one_gadget/builds/libc-2.31-2886817dc06a87bdeef50544c0d6c12de13a8148.rb +0 -80
  860. data/lib/one_gadget/builds/libc-2.31-4d4d0853eb075b8b0cfaee0aee7cdf4254a3e877.rb +0 -80
  861. data/lib/one_gadget/builds/libc-2.31-58a58f2fcdafddacb4a08439ea2ee163ff645d1d.rb +0 -26
  862. data/lib/one_gadget/builds/libc-2.31-634252e0c5f8b03957a2e529719d4101699a894a.rb +0 -122
  863. data/lib/one_gadget/builds/libc-2.31-6b143503744b9d6c22e479941488d6a9e6e3f1c5.rb +0 -26
  864. data/lib/one_gadget/builds/libc-2.31-6c6ea8a57519f219a10c9d6a6d199dd813680226.rb +0 -26
  865. data/lib/one_gadget/builds/libc-2.31-6dbad1709854c527793f6401666e45a791b7c793.rb +0 -80
  866. data/lib/one_gadget/builds/libc-2.31-6fe07009bc57e6917030d052370d8bed414dd7c0.rb +0 -32
  867. data/lib/one_gadget/builds/libc-2.31-78702aff0796336ccdd432310ba6f84c728c9b3c.rb +0 -26
  868. data/lib/one_gadget/builds/libc-2.31-85d7bb2dad0f8172d1c02c0311a00c4695933beb.rb +0 -26
  869. data/lib/one_gadget/builds/libc-2.31-8614995a8f0152ad4b1b45e28070588546ca7ac8.rb +0 -26
  870. data/lib/one_gadget/builds/libc-2.31-8629fa2eea681f639a0c18305d4548850dde3450.rb +0 -26
  871. data/lib/one_gadget/builds/libc-2.31-94761ae31db09ce9140ca55cb6986a5ea9110abc.rb +0 -80
  872. data/lib/one_gadget/builds/libc-2.31-a9053cb60c51ead85c68c941ca4d02f9381844f9.rb +0 -26
  873. data/lib/one_gadget/builds/libc-2.31-b61d34c10e608722a90d339bd9a7ff28b18cd501.rb +0 -23
  874. data/lib/one_gadget/builds/libc-2.31-c9d56de82ddd00d822d6100034f3075ef1709cd2.rb +0 -122
  875. data/lib/one_gadget/builds/libc-2.31-cdaf4c7a78acdea7ede78ea0240a3d8d5833110f.rb +0 -26
  876. data/lib/one_gadget/builds/libc-2.31-e67e80e70619717709e3180e552a11a285036a54.rb +0 -80
  877. data/lib/one_gadget/builds/libc-2.31-eb3c5cf73a0a6b7f2b3895a56dbc443806700971.rb +0 -80
  878. data/lib/one_gadget/builds/libc-2.31-f3aa1ef59e51e64ff8438f46d225e4ae256c1b03.rb +0 -26
  879. data/lib/one_gadget/builds/libc-2.31-f3ff3fda80b817c464a56eed59ff09dc864eaeb0.rb +0 -32
  880. data/lib/one_gadget/builds/libc-2.31-fb7626dd8b8a50f7685920487e992528834f6775.rb +0 -26
  881. data/lib/one_gadget/builds/libc-2.32-0e5c8d8738927eb715941480b3726fa764cc50ed.rb +0 -29
  882. data/lib/one_gadget/builds/libc-2.32-1e3fb06b8c86b5e282e3e11bd207d399fb4952e2.rb +0 -122
  883. data/lib/one_gadget/builds/libc-2.32-7ec3e74da842ca3c6a9ba20b21303ce1bc7a45af.rb +0 -122
  884. data/lib/one_gadget/builds/libc-2.32-7fba7abef941659c229c2636aa0905c28652ee3f.rb +0 -80
  885. data/lib/one_gadget/builds/libc-2.32-82f6b69e698bb579baefb35a3fb0346632fa2c4d.rb +0 -122
  886. data/lib/one_gadget/builds/libc-2.32-87f011a7e4cc3fc60a54d0d3dd690e7438decc8d.rb +0 -80
  887. data/lib/one_gadget/builds/libc-2.32-92199dd358616182fb49c992330fb05e42eaa423.rb +0 -29
  888. data/lib/one_gadget/builds/libc-2.32-9d60d4bd625a7fe2439db781a5fc91bb69684903.rb +0 -29
  889. data/lib/one_gadget/builds/libc-2.32-a75b0c335a4987f12d17d3b4adb8dc430432b082.rb +0 -29
  890. data/lib/one_gadget/builds/libc-2.32-ac287babd169c70013b752da2713dfb96d9a503f.rb +0 -122
  891. data/lib/one_gadget/builds/libc-2.32-aebd80372a00285a5c486ef72917f935eb8f91be.rb +0 -29
  892. data/lib/one_gadget/builds/libc-2.32-bd0e9dc4e27475b5ab7dc59141daaa2626b8a760.rb +0 -29
  893. data/lib/one_gadget/builds/libc-2.32-bddeb6374fc99723cef3b3baafe48ac78fce13b4.rb +0 -29
  894. data/lib/one_gadget/builds/libc-2.32-cb91dd613d38b806a16bed1b364c084ad63d1a1f.rb +0 -80
  895. data/lib/one_gadget/builds/libc-2.32-d3f1cf7f55b985fd6d989880ec3599724fe40a26.rb +0 -29
  896. data/lib/one_gadget/builds/libc-2.32-e13b24f94b260dd6394bdb2433d2a78e37078d5c.rb +0 -80
  897. data/lib/one_gadget/builds/libc-2.32-e1596c76d0d93d8a36378ba976f034f140618d59.rb +0 -80
  898. data/lib/one_gadget/builds/libc-2.32-f45b67ab28af1581cba8e4713e0fd3b2bc004b2e.rb +0 -80
  899. data/lib/one_gadget/builds/libc-2.33-18edf6b683a2f9768cc0ee9cc64ae6fbb545deb2.rb +0 -122
  900. data/lib/one_gadget/builds/libc-2.33-1c943bf313b5b4546e47b830e70de6bbd6a0ba57.rb +0 -29
  901. data/lib/one_gadget/builds/libc-2.33-2b48299781548c9bc452eac6df39902547c884ed.rb +0 -122
  902. data/lib/one_gadget/builds/libc-2.33-37169e68b33cad12e272bb4896d71fd0d4fd98bb.rb +0 -80
  903. data/lib/one_gadget/builds/libc-2.33-54a6e404e7dc1de7c1434a00b7b1ad325b81f22a.rb +0 -80
  904. data/lib/one_gadget/builds/libc-2.33-7983d313db4a441a3762c8861ca405aa0331c0c8.rb +0 -80
  905. data/lib/one_gadget/builds/libc-2.33-8fdc2b2c65f3d782e52c01b546399eee8aa466dc.rb +0 -29
  906. data/lib/one_gadget/builds/libc-2.33-9143da129b44b931a1c180e2b103e993dd2474fd.rb +0 -29
  907. data/lib/one_gadget/builds/libc-2.33-97c8d90bd86bc698d156630e8803de433a640090.rb +0 -122
  908. data/lib/one_gadget/builds/libc-2.33-9bf4c513db255ab7248cef9f0f96b4403df29852.rb +0 -80
  909. data/lib/one_gadget/builds/libc-2.33-9e592d3efa165bc2bab8b40426370bd50cb0b027.rb +0 -80
  910. data/lib/one_gadget/builds/libc-2.33-abf3b2a9815c0cd6e4280cd99474d34102804eb2.rb +0 -80
  911. data/lib/one_gadget/builds/libc-2.33-b046eecd056a0c30995703f6cfca7a8e3a9ef5fa.rb +0 -80
  912. data/lib/one_gadget/builds/libc-2.33-b2262bfa6f1bffd1e9ddc845276dfaebb7c8f0b9.rb +0 -29
  913. data/lib/one_gadget/builds/libc-2.33-f462ab2b79c7f29fb866da6e087e45261570a09c.rb +0 -29
  914. data/lib/one_gadget/builds/libc-2.33-f4af69206091c7f14a941f2dd77a79a7682a1184.rb +0 -29
  915. data/lib/one_gadget/builds/libc-2.34-140609514178a4bb96a3cd44ffdfede398a77610.rb +0 -29
  916. data/lib/one_gadget/builds/libc-2.34-25594d4b6cbecda86ec968fa940c6c09937db70f.rb +0 -83
  917. data/lib/one_gadget/builds/libc-2.34-387920279e1c7892042ff27d76315d55e4651db9.rb +0 -29
  918. data/lib/one_gadget/builds/libc-2.34-7e46fbc4d85f5df8b6f18630787ad281786a3512.rb +0 -29
  919. data/lib/one_gadget/builds/libc-2.34-8d631c824a37b236d1dc9686b224a573fd6048b4.rb +0 -29
  920. data/lib/one_gadget/builds/libc-2.34-b8037b6260865346802321dd2256b8ad1d857e63.rb +0 -119
  921. data/lib/one_gadget/builds/libc-2.34-ba4777827fe1fb729ca35acd99c8013936172a0d.rb +0 -83
  922. data/lib/one_gadget/builds/libc-2.34-f0fc29165cbe6088c0e1adf03b0048fbecbc003a.rb +0 -119
  923. data/lib/one_gadget/builds/libc-2.35-89c3cb85f9e55046776471fed05ec441581d1969.rb +0 -104
  924. data/lib/one_gadget/builds/libc-2.35-ab265082cac9486923c709d48ee5dde080e243ff.rb +0 -68
  925. data/lib/one_gadget/builds/libc-2.35-c376d41cff4473142a97ac1ff1eab433859dc3d4.rb +0 -26
  926. data/lib/one_gadget/builds/libc-2.35-dfca8b65dd2d2ca67f70dc7a556a6cfa8ba96ed8.rb +0 -26
  927. data/lib/one_gadget/fetcher.rb +0 -58
@@ -0,0 +1,175 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'one_gadget/emulators/lambda'
4
+ require 'one_gadget/emulators/processor'
5
+
6
+ module OneGadget
7
+ module Emulators
8
+ # Behaviour shared by the two ARM-architecture emulators, {Arm} (AArch32) and
9
+ # {AArch64}: the condition-code table plus the parts of the calling convention
10
+ # and memory model that are identical in 32- and 64-bit mode. The common base
11
+ # each inherits (the ARM counterpart of {X86}); everything that genuinely
12
+ # differs (instruction set, register width, +pc+ handling) stays in the
13
+ # individual classes.
14
+ class ArmFamily < Processor
15
+ # ARM condition-code suffix (the +<cc>+ in +b<cc>+ / +b.<cc>+) mapped to a
16
+ # shared {Conditional::RELATION} predicate. (x86 uses {X86::JCC}.)
17
+ # @example Aliases decode alike, the sign bit reads as a signed comparison,
18
+ # and overflow has no constraint form -- a branch on it aborts the path.
19
+ # COND['hs'] #=> :uge
20
+ # COND['cs'] #=> :uge
21
+ # COND['mi'] #=> :slt
22
+ # COND['vs'] #=> nil
23
+ COND = {
24
+ 'eq' => :eq, 'ne' => :ne,
25
+ 'hs' => :uge, 'cs' => :uge, 'lo' => :ult, 'cc' => :ult,
26
+ 'hi' => :ugt, 'ls' => :ule,
27
+ 'ge' => :sge, 'lt' => :slt, 'gt' => :sgt, 'le' => :sle,
28
+ 'mi' => :slt, 'pl' => :sge
29
+ }.freeze
30
+
31
+ # This arch family's flag-setting compare mnemonics, mapped to the ALU op
32
+ # whose result their flags reflect (see {Conditional::COMPARE_OPS}). x86 has
33
+ # its own {X86::COMPARES}.
34
+ COMPARES = { 'cmp' => :sub, 'cmn' => :add, 'tst' => :and }.freeze
35
+
36
+ # The data-processing instructions both ARM families spell the same way,
37
+ # mapped to the Ruby operator that folds them and renders them alike.
38
+ # +bic+ and +mvn+ are absent: they complement their operand first, which
39
+ # {#complement} turns back into one of these (see {#inst_bic}).
40
+ DATA_OPS = { 'and' => :&, 'orr' => :|, 'eor' => :^, 'lsl' => :<<, 'lsr' => :>> }.freeze
41
+ private_constant :DATA_OPS
42
+
43
+ private
44
+
45
+ # A compare whose second operand may carry a shift modifier, e.g.
46
+ # +cmn x0, 0x1, lsl 12+ (the immediate is 0x1000, not 0x1). Fold a constant
47
+ # shift into the operand; abort on any modifier not modelled, since dropping
48
+ # it would silently understate the constraint.
49
+ # @return [Boolean] false aborts the candidate.
50
+ def handle_compare(op, cmd)
51
+ ops = operands(cmd)
52
+ return false if ops.size > 3
53
+
54
+ rhs = operand_str(ops[1])
55
+ if ops.size == 3
56
+ rhs = shifted_operand(rhs, ops[2])
57
+ return false if rhs.nil?
58
+ end
59
+ record_compare(op, operand_str(ops[0]), rhs)
60
+ end
61
+
62
+ # Apply a constant shift modifier to an already-rendered operand.
63
+ # @return [String, nil] nil when the shift isn't a constant amount applied to
64
+ # a known integer, which the caller treats as unmodelled.
65
+ # @example
66
+ # shifted_operand('0x1', 'lsl 12') #=> '0x1000'
67
+ def shifted_operand(rhs, modifier)
68
+ m = modifier.match(/\A(lsl|lsr|asr)\s+(\d+)\z/)
69
+ return nil unless m && OneGadget::Helper.integer?(rhs)
70
+
71
+ value = Integer(rhs)
72
+ OneGadget::Helper.hex(m[1] == 'lsl' ? value << Integer(m[2]) : value >> Integer(m[2]))
73
+ end
74
+
75
+ # +op2+ with the modifier this family may spell on it folded in. Yields for a
76
+ # modifier it does not model, so an unmodelled one aborts the candidate
77
+ # instead of being silently dropped.
78
+ # @param [String] op2 The operand the modifier applies to.
79
+ # @param [String, nil] mode The modifier, as written -- +nil+ for none.
80
+ # @return [String] The operand {Processor#arith} then reads.
81
+ # @example (aarch64, +x2+ holding +0x1+) A constant shift folds in, a
82
+ # sign-extension is taken whole, and a rotate is not modelled.
83
+ # modified_operand('x2', 'lsl 3') #=> '0x8'
84
+ # modified_operand('x2', 'sxtw') #=> 'x2'
85
+ # modified_operand('x2', 'ror 3') { :abort } #=> :abort
86
+ def modified_operand(op2, mode)
87
+ return op2 if mode.nil? || mode == 'sxtw'
88
+
89
+ shifted_operand(value_str(value_of(op2)), mode) || yield
90
+ end
91
+
92
+ # +add+/+sub+, shared by both families. Each allows the 2-operand shorthand,
93
+ # and each may carry a modifier on +op2+ -- a shift, or (aarch64) a
94
+ # sign-extension of its low half.
95
+ # @param [String] dst The destination register.
96
+ # @param [String] src The value added to, or the only operand given.
97
+ # @param [String, nil] op2 The value to add, or nil in the 2-operand form.
98
+ # @param [String, nil] mode A modifier applied to +op2+ (see {#modified_operand}).
99
+ # @return [void]
100
+ def inst_add(dst, src, op2 = nil, mode = nil)
101
+ arith(:+, dst, src, modified_operand(op2, mode) { raise_unsupported(:+, dst, src, op2, mode) })
102
+ end
103
+
104
+ # +sub dst, src, op2+. See {#inst_add} for the operands.
105
+ # @return [void]
106
+ def inst_sub(dst, src, op2 = nil, mode = nil)
107
+ arith(:-, dst, src, modified_operand(op2, mode) { raise_unsupported(:-, dst, src, op2, mode) })
108
+ end
109
+
110
+ # Each {DATA_OPS} mnemonic handled the one way, since they differ only in the
111
+ # operator applied (see {Processor#data_op} for the operands).
112
+ %w[and orr eor lsl lsr].each do |name|
113
+ define_method(:"inst_#{name}") do |dst, src, op2 = nil|
114
+ data_op(DATA_OPS.fetch(name), dst, src, op2, name:)
115
+ end
116
+ end
117
+
118
+ # +bic dst, src, op2+ clears the bits +op2+ sets, which is +and+ against its
119
+ # complement -- the form a constraint should read as, since that complement
120
+ # is the mask the caller has to arrange.
121
+ # @param [String] dst The destination register.
122
+ # @param [String] src The value to clear bits of, or the only operand given.
123
+ # @param [String, nil] op2 The bits to clear, or nil in the 2-operand form.
124
+ # @return [void]
125
+ def inst_bic(dst, src, op2 = nil)
126
+ src, op2 = shorthand(dst, src, op2)
127
+ data_op(DATA_OPS.fetch('and'), dst, src,
128
+ OneGadget::Helper.hex(complement('bic', op2, dst, src, op2)), name: 'and')
129
+ end
130
+
131
+ # +mvn dst, op2+ is that complement on its own.
132
+ # @param [String] dst The destination register.
133
+ # @param [String] op2 The value to complement.
134
+ # @return [void]
135
+ def inst_mvn(dst, op2)
136
+ check_register!(dst)
137
+
138
+ registers[dst] = complement('mvn', op2, dst, op2)
139
+ end
140
+
141
+ # A memory barrier orders accesses without changing any value, so a path
142
+ # crossing one carries on unchanged. The operand naming its scope (+dmb ish+)
143
+ # says which accesses, not what they hold.
144
+ alias inst_dmb inst_nop
145
+ alias inst_dsb inst_nop
146
+ alias inst_isb inst_nop
147
+
148
+ # A +bl+/+blx+ call: record the terminal +exec*+ target, accept a known-safe
149
+ # syscall wrapper, or +:fail+ to abort the candidate.
150
+ def inst_bl(addr)
151
+ return reach_terminal_call(addr) if terminal_call?(addr)
152
+
153
+ dispatch_safe_call(addr)
154
+ end
155
+
156
+ # A byte load. The address is read like any other, so what the caller has to
157
+ # arrange about it is recorded the same way -- but one byte of a word is not
158
+ # a value this emulator can name, so the register holds what a call would
159
+ # have left: a path that goes on to depend on it is abandoned rather than
160
+ # described wrongly.
161
+ def inst_ldrb(dst, src, index = 0)
162
+ inst_ldr(dst, src, index)
163
+ registers[dst] = clobbered_value
164
+ end
165
+
166
+ # +cbz+/+cbnz+ (compare-and-branch-on-zero): identical decoding in ARM and
167
+ # AArch64. +ops+ is +[register, target-address-hex]+, as {#operands} splits it.
168
+ # @param [Array<String>] ops The branch's operands.
169
+ # @param [Boolean] negate +false+ for +cbz+, +true+ for +cbnz+.
170
+ def handle_cbz(ops, negate:)
171
+ branch_on_zero(ops[1].to_i(16), ops[0], negate:)
172
+ end
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,354 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'one_gadget/error'
4
+ require 'one_gadget/helper'
5
+
6
+ module OneGadget
7
+ module Emulators
8
+ # Shared modelling of compare instructions and conditional branches.
9
+ #
10
+ # A gadget candidate may cross a conditional branch: the fetcher stitches the
11
+ # actual taken/not-taken path (see {OneGadget::Fetchers::Base#candidates}), and
12
+ # the emulator turns the branch decision into a gadget constraint.
13
+ #
14
+ # The including class (an {OneGadget::Emulators::Processor} subclass) must
15
+ # provide +registers+ and +register?+ (operand lookup), +operands(cmd)+ (the
16
+ # arch's operand splitter), +self.class.bits+ (32/64, for the signedness cast),
17
+ # and the +@flags+/+@pending+/+@constraints+ state {Processor#initialize} sets up.
18
+ #
19
+ # @example A +b.ne+ whose branch is *not* taken becomes the constraint +x2 == 0x1+
20
+ # # c7a4c: cmp x2, 1
21
+ # # c7a50: b.ne c7a9c # stitched path falls through (does not jump)
22
+ # # => emitted gadget constraint: x2 == 0x1
23
+ module Conditional
24
+ # Taken-semantics of each supported branch condition, keyed by a predicate
25
+ # named after the comparison it encodes (the LLVM +icmp+ names): a leading
26
+ # +u+ = unsigned, +s+ = signed.
27
+ # @example The value is the relation, and the cast its operands take.
28
+ # RELATION[:eq] #=> ['==', nil]
29
+ # RELATION[:ult] #=> ['<', :u]
30
+ # RELATION[:sge] #=> ['>=', :s]
31
+ # :eq :ne equality
32
+ # :ult :ule :ugt :uge unsigned < <= > >=
33
+ # :slt :sle :sgt :sge signed < <= > >=
34
+ RELATION = {
35
+ eq: ['==', nil], ne: ['!=', nil],
36
+ ult: ['<', :u], ule: ['<=', :u], ugt: ['>', :u], uge: ['>=', :u],
37
+ slt: ['<', :s], sle: ['<=', :s], sgt: ['>', :s], sge: ['>=', :s]
38
+ }.freeze
39
+
40
+ # Relation under the not-taken branch.
41
+ NEGATE = { '==' => '!=', '!=' => '==', '>=' => '<', '<' => '>=', '>' => '<=', '<=' => '>' }.freeze
42
+
43
+ # The flag-setting compares we model, keyed by the ALU operation the compare
44
+ # performs. An arch maps its own mnemonics onto these (its +COMPARES+), so
45
+ # adding one needs no change here.
46
+ # @example Whether magnitude conditions are sound after it, and what renders
47
+ # its constraint text.
48
+ # COMPARE_OPS[:sub] #=> { ordered: true, render: :render_sub }
49
+ # COMPARE_OPS.keys #=> [:sub, :add, :and]
50
+ COMPARE_OPS = {
51
+ sub: { ordered: true, render: :render_sub }, # subtraction: flags from lhs - rhs
52
+ add: { ordered: true, render: :render_add }, # addition: flags from lhs + rhs
53
+ and: { ordered: false, render: :render_and } # bitwise AND: flags from lhs & rhs (zero flag)
54
+ }.freeze
55
+
56
+ # A value comparison's zero literal, always hex. Pointer operands render
57
+ # +NULL+ (chosen by the arg resolvers); every value-context zero here is
58
+ # +0x0+, so a bare +0+ (and objdump's arch-specific +#0+ vs +0x0+) never leaks
59
+ # into a constraint. Recorded here and read back by {Constraints}, whose drop
60
+ # rules recognise a compare against zero by it.
61
+ ZERO = '0x0'
62
+
63
+ # Record a compare so a following conditional branch can be rendered.
64
+ # Normally reached through {#handle_compare}; call it directly only when an
65
+ # arch models a flag-setting instruction that {#handle_compare} doesn't cover.
66
+ # @param [Symbol] op The ALU operation the compare performs -- a {COMPARE_OPS}
67
+ # key (+:sub+/+:add+/+:and+). Its flags reflect this result, which decides
68
+ # both which branch conditions are expressible and how the constraint is
69
+ # rendered. Each arch maps its own mnemonics to these ops (their +COMPARES+);
70
+ # a new arch adds a {COMPARE_OPS} entry only for a genuinely new operation.
71
+ # @param [String] lhs Rendered left operand: a register's current value, or an immediate in hex.
72
+ # @param [String] rhs Rendered right operand.
73
+ # @return [true]
74
+ # @example Record +cmp x2, 0x1+ (subtraction), readying the next branch
75
+ # record_compare(:sub, '0x1', '0x1') #=> true
76
+ # # a following +b.ne+ not taken renders 0x1 == 0x1 (a stripped tautology)
77
+ def record_compare(op, lhs, rhs)
78
+ @flags = { op:, lhs:, rhs: }
79
+ true
80
+ end
81
+
82
+ # Model a compare line: record its two operands' current values under the
83
+ # compare's ALU op, so a following conditional branch can be rendered.
84
+ #
85
+ # Call this from +process!+ when the mnemonic is one of the arch's compares
86
+ # (its +COMPARES+ maps the mnemonic to the op), *before* dispatching to the
87
+ # +inst_*+ handlers.
88
+ # @param [Symbol] op The compare's ALU operation (a {COMPARE_OPS} key), which the
89
+ # arch resolves from the mnemonic.
90
+ # @param [String] cmd Passed to the arch's +operands+ splitter, so it is whatever
91
+ # that splitter expects (a full objdump line, or just its operand part).
92
+ # @return [true]
93
+ # @example Wiring in an arch's +process!+ (its +COMPARES+ holds the mnemonic map)
94
+ # return handle_compare(COMPARES[mnem], cmd) if COMPARES.key?(mnem)
95
+ # @example What it records for +cmp x2, 1+ (x2 currently 0x30)
96
+ # handle_compare(:sub, '4a1c0: cmp x2, 1') #=> true
97
+ # # records op :sub, lhs = 0x30, rhs = 0x1, ready for the next branch
98
+ def handle_compare(op, cmd)
99
+ lhs, rhs = operands(cmd)
100
+ record_compare(op, operand_str(lhs), operand_str(rhs))
101
+ end
102
+
103
+ # The mnemonic of an objdump line. Use it at the top of +process!+ to decide
104
+ # whether a line is a compare or a branch.
105
+ # @param [String] cmd One objdump line.
106
+ # @return [String] The mnemonic, or +''+ when the line has none.
107
+ # @example
108
+ # mnemonic('4a1c0: cmp x2, 1') #=> 'cmp'
109
+ # mnemonic('4a1d0: b.ne 4a200 <foo>') #=> 'b.ne'
110
+ # mnemonic('4a1d4: je 4a200') #=> 'je'
111
+ # mnemonic('') #=> ''
112
+ def mnemonic(cmd)
113
+ cmd[/\A[0-9a-f]+:\s*(\S+)/, 1] || ''
114
+ end
115
+
116
+ # Render an operand for a constraint: a register becomes its current value,
117
+ # an immediate becomes hex, anything else (a memory operand) stays as-is.
118
+ # {#handle_compare} uses it on each compare operand; call it yourself only
119
+ # when writing a bespoke +branch_on_*+ helper.
120
+ # @param [String] operand A single operand string from a compare/branch line.
121
+ # @return [String] The rendered operand.
122
+ # @example (assuming register +x2+ currently holds the immediate +0x1+)
123
+ # operand_str('x2') #=> '0x1' # a register -> its current value
124
+ # operand_str('0x40') #=> '0x40' # a hex immediate -> unchanged
125
+ # operand_str('16') #=> '0x10' # a decimal immediate -> hex
126
+ # operand_str('[sp+0x8]') #=> '[sp+0x8]' # a memory operand -> unchanged
127
+ def operand_str(operand)
128
+ if register?(operand)
129
+ raise Error::ClobberedRegisterError, operand if clobbered?(registers[operand])
130
+
131
+ return value_str(registers[operand])
132
+ end
133
+
134
+ OneGadget::Helper.hex(Integer(operand))
135
+ rescue ArgumentError
136
+ operand
137
+ end
138
+
139
+ # A value as a constraint reads it: a concrete one in hex, whichever side of
140
+ # a compare it came from, and anything else as it renders itself.
141
+ # @param [Object] val The value to render.
142
+ # @return [String] Its constraint form.
143
+ # @example value_str(1) #=> '0x1', so a folded register reads like an immediate
144
+ def value_str(val)
145
+ val.is_a?(Integer) ? OneGadget::Helper.hex(val) : val.to_s
146
+ end
147
+
148
+ # Register a branch on the last recorded compare's flags, resolved on the next
149
+ # line. Call it from +handle_branch+; +cond+ is the comparison predicate and
150
+ # +target+ is the branch's direct destination address.
151
+ # @param [Symbol] cond The comparison predicate, a {RELATION} key. Each arch
152
+ # first maps its own branch mnemonic to it via its adapter table.
153
+ # @param [Integer] target Destination address of the branch.
154
+ # @return [true, :fail] +:fail+ (abort the path) when it cannot be expressed
155
+ # soundly: no compare was seen, or a magnitude condition follows an
156
+ # equality-only compare (a {COMPARE_OPS} op with +ordered: false+).
157
+ # @example After +cmp x2, #1+, a following +b.ne 4a200+ (arch maps +b.ne+ to +:ne+)
158
+ # branch_on_compare(:ne, 0x4a200) #=> true
159
+ # # if the stitched path FALLS THROUGH (doesn't reach 0x4a200) the not-taken
160
+ # # relation of +:ne+ is emitted: x2 == 0x1 ; if it jumps there: x2 != 0x1
161
+ # @example No preceding compare -> the path is unsound and is aborted
162
+ # branch_on_compare(:ne, 0x4a200) #=> :fail # when @flags is nil
163
+ def branch_on_compare(cond, target)
164
+ return :fail if @flags.nil?
165
+
166
+ rel = RELATION[cond]
167
+ return :fail if rel.nil?
168
+ # A magnitude condition needs a compare whose flags reflect a full ordering
169
+ # (+:sub+/+:add+); an equality-only compare (+:and+) supports just eq/ne.
170
+ return :fail unless COMPARE_OPS.fetch(@flags[:op])[:ordered] || %i[eq ne].include?(cond)
171
+
172
+ op = @flags[:op]
173
+ lhs = @flags[:lhs]
174
+ rhs = @flags[:rhs]
175
+ @pending = { target:, compare: ->(taken) { compare_triple(op, lhs, rhs, rel, taken) } }
176
+ true
177
+ end
178
+
179
+ # Register a self-contained branch that tests a register against zero. It carries
180
+ # its own compare, so no preceding compare is needed. +negate:+ selects the sense:
181
+ # +false+ branches when the register is zero, +true+ when it isn't.
182
+ # @param [Integer] target Destination address of the branch.
183
+ # @param [String] operand The tested register, as the instruction writes it;
184
+ # rendered here, so a value the caller cannot reason about stops the path.
185
+ # @param [Boolean] negate +false+ = branch when it is zero, +true+ = when it isn't.
186
+ # @example aarch64 +cbz x0, 4a200+ - branch taken when +x0 == 0+
187
+ # branch_on_zero(0x4a200, 'x0', negate: false) #=> true
188
+ # # fall-through path emits x0 != 0 ; taken path emits x0 == 0
189
+ # @example x86 reuses it for +jrcxz+/+jecxz+/+jcxz+ (always branch-if-zero)
190
+ # branch_on_zero(0x4a200, 'rcx', negate: false)
191
+ # @return [true] Registering the branch is how the line is handled.
192
+ def branch_on_zero(target, operand, negate:)
193
+ reg = operand_str(operand)
194
+ hit = negate ? '!=' : '==' # taken (not negated) => reg == 0
195
+ miss = negate ? '==' : '!='
196
+ @pending = { target:, compare: ->(taken) { [reg, taken ? hit : miss, ZERO] } }
197
+ true
198
+ end
199
+
200
+ # Register a self-contained branch that tests a single bit of a register: also
201
+ # carries its own test, so no preceding compare is needed. Renders a bitmask test.
202
+ # @param [Integer] target Destination address of the branch.
203
+ # @param [String] operand The tested register, as the instruction writes it (see {#branch_on_zero}).
204
+ # @param [Integer] bit The bit index being tested.
205
+ # @param [Boolean] negate +false+ = branch when the bit is zero, +true+ = when it's set.
206
+ # @example aarch64 +tbz w0, #4, 4a200+ - branch taken when bit 4 of +w0+ is 0
207
+ # branch_on_bit(0x4a200, 'w0', 4, negate: false) #=> true
208
+ # # taken path emits (w0 & 0x10) == 0 ; fall-through emits (w0 & 0x10) != 0
209
+ # @return [true] Registering the branch is how the line is handled.
210
+ def branch_on_bit(target, operand, bit, negate:)
211
+ reg = operand_str(operand)
212
+ mask = OneGadget::Helper.hex(1 << bit)
213
+ hit = negate ? '!=' : '=='
214
+ miss = negate ? '==' : '!='
215
+ @pending = { target:, compare: ->(taken) { ["(#{reg} & #{mask})", taken ? hit : miss, ZERO] } }
216
+ true
217
+ end
218
+
219
+ # Resolve the pending branch using +cmd+'s address: if it equals the branch
220
+ # target the stitched path took the branch, else it fell through. On
221
+ # resolution the rendered relation is appended to the gadget's constraints.
222
+ # Must be called at the top of +process!+ for every line (a no-op when nothing
223
+ # is pending), so the branch registered on the previous line sees this line's address.
224
+ # @param [String] cmd The current objdump line.
225
+ # @example The fixed first line of every arch's +process!+
226
+ # def process!(cmd)
227
+ # resolve_pending_branch(cmd)
228
+ # ...
229
+ # end
230
+ # # if the previous line did +branch_on_compare(:ne, 0x4a200)+ and this
231
+ # # +cmd+ sits at 0x4a200, the branch was taken; otherwise it fell through
232
+ # @return [void]
233
+ # @raise [OneGadget::Error::InfeasiblePathError]
234
+ # When the resolved relation cannot hold with the ones already recorded.
235
+ def resolve_pending_branch(cmd)
236
+ return if @pending.nil?
237
+
238
+ taken = branch_addr(cmd) == @pending[:target]
239
+ triple = @pending[:compare].call(taken)
240
+ @pending = nil
241
+ @constraints << [:cmp, triple]
242
+ return if satisfiable?(comparisons_on(triple.first))
243
+
244
+ raise Error::InfeasiblePathError, "cannot hold together: #{triple.first}"
245
+ end
246
+
247
+ # Every comparison recorded so far on +expr+, the left side as rendered.
248
+ # Matching on that text is what makes this sound: the renderer substitutes
249
+ # each register's current value, so two constraints printing the same left
250
+ # side really are about the same tracked value (and a differing signedness
251
+ # cast is part of that text, keeping incomparable ones apart).
252
+ # @param [String] expr The left side, as rendered.
253
+ # @return [Array<(String, String, String)>] The comparisons recorded on it.
254
+ def comparisons_on(expr)
255
+ @constraints.filter_map { |type, obj| obj if type == :cmp && obj.first == expr }
256
+ end
257
+
258
+ # Whether some value satisfies every comparison in +triples+ at once, by
259
+ # intersecting the range each one allows. Comparisons against anything but
260
+ # an integer are ignored rather than guessed at, so an undecidable one never
261
+ # makes a path look impossible.
262
+ # @param [Array<(String, String, String)>] triples Comparisons on one expression.
263
+ # @return [Boolean]
264
+ # @example x != 0x0 together with x == 0x0 #=> false
265
+ def satisfiable?(triples)
266
+ low = nil
267
+ high = nil
268
+ excluded = []
269
+ triples.each do |_expr, op, rhs|
270
+ next unless OneGadget::Helper.integer?(rhs)
271
+
272
+ value = Integer(rhs)
273
+ case op
274
+ when '=='
275
+ low = [low, value].compact.max
276
+ high = [high, value].compact.min
277
+ when '!=' then excluded << value
278
+ when '<' then high = [high, value - 1].compact.min
279
+ when '<=' then high = [high, value].compact.min
280
+ when '>' then low = [low, value + 1].compact.max
281
+ when '>=' then low = [low, value].compact.max
282
+ end
283
+ end
284
+ return false if low && high && (low > high || (low == high && excluded.include?(low)))
285
+
286
+ true
287
+ end
288
+
289
+ private
290
+
291
+ # Render the constraint a taken/not-taken branch imposes on the recorded
292
+ # compare: flip the operator via {NEGATE} on the not-taken edge, prefix the
293
+ # signedness cast, then defer to the op's +render_*+ method (see {COMPARE_OPS}).
294
+ # Raises +KeyError+ if +op+ isn't a known {COMPARE_OPS} entry.
295
+ # @param [Symbol] op The compare's ALU operation (a {COMPARE_OPS} key).
296
+ # @param [Array(String, Symbol)] rel The +[operator, signedness]+ from {RELATION}.
297
+ # @example +b.ne+ (not taken) after +cmp x2, 1+ -- a +:sub+ compare, 64-bit
298
+ # compare_constraint(:sub, 'x2', '0x1', ['!=', nil], false) #=> 'x2 == 0x1'
299
+ # @example +jne+ (taken) after +test eax, eax+ -- an +:and+ compare
300
+ # compare_constraint(:and, 'eax', 'eax', ['!=', nil], true) #=> 'eax != 0'
301
+ def compare_triple(op, lhs, rhs, rel, taken)
302
+ operator, sign = rel
303
+ operator = NEGATE[operator] unless taken
304
+ cast = sign ? "(#{sign}#{self.class.bits})" : ''
305
+ __send__(COMPARE_OPS.fetch(op)[:render], cast, lhs, rhs, operator, sign)
306
+ end
307
+
308
+ # Subtraction (+:sub+): a direct comparison of the two operands.
309
+ def render_sub(cast, lhs, rhs, op, _sign)
310
+ rhs = ZERO if rhs == '0'
311
+ ["#{cast}#{lhs}", op, rhs]
312
+ end
313
+
314
+ # Addition (+:add+): the flags reflect +lhs + rhs+ against 0, except under an
315
+ # unsigned condition, which reads the carry instead -- set exactly when the
316
+ # sum wraps, that is when +lhs >= -rhs+.
317
+ # @example Read as an equality, then unsigned -- the second is glibc's "the
318
+ # syscall didn't return -errno" check, which +x0 == 0+ satisfies and
319
+ # +(x0 + 0x1000) <= 0+ would wrongly exclude.
320
+ # render_add(nil, 'x0', '0x1000', :ne, nil) #=> ['(x0 + 0x1000)', :ne, '0x0']
321
+ # render_add(nil, 'x0', '0x1000', :le, :u) #=> ['x0', :le, '0xfffffffffffff000']
322
+ def render_add(cast, lhs, rhs, op, sign)
323
+ return ["#{cast}(#{lhs} + #{rhs})", op, ZERO] unless sign == :u && negatable?(rhs)
324
+
325
+ ["#{cast}#{lhs}", op, OneGadget::Helper.hex((-Integer(rhs)) & mask)]
326
+ end
327
+
328
+ # Bitwise AND (+:and+): a bitmask test; identical operands collapse to a plain zero test.
329
+ def render_and(_cast, lhs, rhs, op, _sign)
330
+ [lhs == rhs ? lhs : "(#{lhs} & #{rhs})", op, ZERO]
331
+ end
332
+
333
+ # Whether +rhs+ can be moved to the other side of an unsigned add-compare.
334
+ # A zero addend never carries, so the condition doesn't reduce to a bound and
335
+ # the sum form is kept.
336
+ def negatable?(rhs)
337
+ OneGadget::Helper.integer?(rhs) && !Integer(rhs).zero?
338
+ end
339
+
340
+ # All-ones for this architecture's word size.
341
+ def mask
342
+ (1 << self.class.bits) - 1
343
+ end
344
+
345
+ # The address of an objdump line, used to tell whether the pending branch
346
+ # was taken.
347
+ # @example
348
+ # branch_addr('4a200: nop') #=> 0x4a200
349
+ def branch_addr(cmd)
350
+ cmd[/\A\s*([0-9a-f]+):/, 1].to_i(16)
351
+ end
352
+ end
353
+ end
354
+ end