@aztec/l1-artifacts 0.76.2 → 0.76.4-devnet-test

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 (168) hide show
  1. package/dest/CoinIssuerAbi.d.ts +16 -40
  2. package/dest/CoinIssuerAbi.d.ts.map +1 -1
  3. package/dest/CoinIssuerAbi.js +18 -50
  4. package/dest/EmpireBaseAbi.d.ts +16 -40
  5. package/dest/EmpireBaseAbi.d.ts.map +1 -1
  6. package/dest/EmpireBaseAbi.js +18 -50
  7. package/dest/ErrorsAbi.d.ts +16 -40
  8. package/dest/ErrorsAbi.d.ts.map +1 -1
  9. package/dest/ErrorsAbi.js +18 -50
  10. package/dest/ExtRollupLibAbi.d.ts +16 -48
  11. package/dest/ExtRollupLibAbi.d.ts.map +1 -1
  12. package/dest/ExtRollupLibAbi.js +18 -61
  13. package/dest/ExtRollupLibBytecode.d.ts +1 -1
  14. package/dest/ExtRollupLibBytecode.d.ts.map +1 -1
  15. package/dest/ExtRollupLibBytecode.js +2 -2
  16. package/dest/FeeJuicePortalAbi.d.ts +16 -40
  17. package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
  18. package/dest/FeeJuicePortalAbi.js +18 -50
  19. package/dest/FeeJuicePortalBytecode.d.ts +1 -1
  20. package/dest/FeeJuicePortalBytecode.js +1 -1
  21. package/dest/ForwarderAbi.d.ts +16 -40
  22. package/dest/ForwarderAbi.d.ts.map +1 -1
  23. package/dest/ForwarderAbi.js +18 -50
  24. package/dest/GovernanceAbi.d.ts +16 -40
  25. package/dest/GovernanceAbi.d.ts.map +1 -1
  26. package/dest/GovernanceAbi.js +18 -50
  27. package/dest/GovernanceProposerAbi.d.ts +16 -40
  28. package/dest/GovernanceProposerAbi.d.ts.map +1 -1
  29. package/dest/GovernanceProposerAbi.js +18 -50
  30. package/dest/HonkVerifierAbi.d.ts +16 -40
  31. package/dest/HonkVerifierAbi.d.ts.map +1 -1
  32. package/dest/HonkVerifierAbi.js +18 -50
  33. package/dest/HonkVerifierBytecode.d.ts +1 -1
  34. package/dest/HonkVerifierBytecode.d.ts.map +1 -1
  35. package/dest/HonkVerifierBytecode.js +2 -2
  36. package/dest/IERC20Abi.d.ts +16 -40
  37. package/dest/IERC20Abi.d.ts.map +1 -1
  38. package/dest/IERC20Abi.js +18 -50
  39. package/dest/IVerifierAbi.d.ts +16 -40
  40. package/dest/IVerifierAbi.d.ts.map +1 -1
  41. package/dest/IVerifierAbi.js +18 -50
  42. package/dest/InboxAbi.d.ts +16 -40
  43. package/dest/InboxAbi.d.ts.map +1 -1
  44. package/dest/InboxAbi.js +18 -50
  45. package/dest/InboxBytecode.d.ts +1 -1
  46. package/dest/InboxBytecode.js +1 -1
  47. package/dest/MockVerifierAbi.d.ts +16 -40
  48. package/dest/MockVerifierAbi.d.ts.map +1 -1
  49. package/dest/MockVerifierAbi.js +18 -50
  50. package/dest/NewGovernanceProposerPayloadAbi.d.ts +16 -40
  51. package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -1
  52. package/dest/NewGovernanceProposerPayloadAbi.js +18 -50
  53. package/dest/OutboxAbi.d.ts +16 -40
  54. package/dest/OutboxAbi.d.ts.map +1 -1
  55. package/dest/OutboxAbi.js +18 -50
  56. package/dest/OutboxBytecode.d.ts +1 -1
  57. package/dest/OutboxBytecode.js +1 -1
  58. package/dest/RegistryAbi.d.ts +16 -40
  59. package/dest/RegistryAbi.d.ts.map +1 -1
  60. package/dest/RegistryAbi.js +18 -50
  61. package/dest/RewardDistributorAbi.d.ts +34 -40
  62. package/dest/RewardDistributorAbi.d.ts.map +1 -1
  63. package/dest/RewardDistributorAbi.js +42 -50
  64. package/dest/RewardDistributorBytecode.d.ts +1 -1
  65. package/dest/RewardDistributorBytecode.d.ts.map +1 -1
  66. package/dest/RewardDistributorBytecode.js +2 -2
  67. package/dest/RollupAbi.d.ts +123 -413
  68. package/dest/RollupAbi.d.ts.map +1 -1
  69. package/dest/RollupAbi.js +175 -547
  70. package/dest/RollupBytecode.d.ts +43 -52
  71. package/dest/RollupBytecode.d.ts.map +1 -1
  72. package/dest/RollupBytecode.js +44 -56
  73. package/dest/RollupStorage.d.ts +6 -6
  74. package/dest/RollupStorage.js +6 -6
  75. package/dest/SlashFactoryAbi.d.ts +16 -40
  76. package/dest/SlashFactoryAbi.d.ts.map +1 -1
  77. package/dest/SlashFactoryAbi.js +18 -50
  78. package/dest/SlasherAbi.d.ts +16 -40
  79. package/dest/SlasherAbi.d.ts.map +1 -1
  80. package/dest/SlasherAbi.js +18 -50
  81. package/dest/SlashingProposerAbi.d.ts +16 -40
  82. package/dest/SlashingProposerAbi.d.ts.map +1 -1
  83. package/dest/SlashingProposerAbi.js +18 -50
  84. package/dest/StakingLibAbi.d.ts +16 -40
  85. package/dest/StakingLibAbi.d.ts.map +1 -1
  86. package/dest/StakingLibAbi.js +18 -50
  87. package/dest/StakingLibBytecode.d.ts +1 -1
  88. package/dest/StakingLibBytecode.js +1 -1
  89. package/dest/TestERC20Abi.d.ts +16 -40
  90. package/dest/TestERC20Abi.d.ts.map +1 -1
  91. package/dest/TestERC20Abi.js +18 -50
  92. package/dest/TokenPortalAbi.d.ts +16 -40
  93. package/dest/TokenPortalAbi.d.ts.map +1 -1
  94. package/dest/TokenPortalAbi.js +18 -50
  95. package/dest/TokenPortalBytecode.d.ts +1 -1
  96. package/dest/TokenPortalBytecode.js +1 -1
  97. package/dest/UniswapPortalAbi.d.ts +16 -40
  98. package/dest/UniswapPortalAbi.d.ts.map +1 -1
  99. package/dest/UniswapPortalAbi.js +18 -50
  100. package/dest/UniswapPortalBytecode.d.ts +1 -1
  101. package/dest/UniswapPortalBytecode.js +1 -1
  102. package/dest/ValidatorSelectionLibAbi.d.ts +16 -40
  103. package/dest/ValidatorSelectionLibAbi.d.ts.map +1 -1
  104. package/dest/ValidatorSelectionLibAbi.js +18 -50
  105. package/dest/ValidatorSelectionLibBytecode.d.ts +1 -1
  106. package/dest/ValidatorSelectionLibBytecode.js +1 -1
  107. package/dest/checksum.d.ts +1 -1
  108. package/dest/checksum.js +1 -1
  109. package/dest/index.d.ts +0 -4
  110. package/dest/index.d.ts.map +1 -1
  111. package/dest/index.js +1 -5
  112. package/generated/CoinIssuerAbi.ts +17 -49
  113. package/generated/EmpireBaseAbi.ts +17 -49
  114. package/generated/ErrorsAbi.ts +17 -49
  115. package/generated/ExtRollupLibAbi.ts +17 -60
  116. package/generated/ExtRollupLibBytecode.ts +1 -1
  117. package/generated/FeeJuicePortalAbi.ts +17 -49
  118. package/generated/FeeJuicePortalBytecode.ts +1 -1
  119. package/generated/ForwarderAbi.ts +17 -49
  120. package/generated/GovernanceAbi.ts +17 -49
  121. package/generated/GovernanceProposerAbi.ts +17 -49
  122. package/generated/HonkVerifierAbi.ts +17 -49
  123. package/generated/HonkVerifierBytecode.ts +1 -1
  124. package/generated/IERC20Abi.ts +17 -49
  125. package/generated/IVerifierAbi.ts +17 -49
  126. package/generated/InboxAbi.ts +17 -49
  127. package/generated/InboxBytecode.ts +1 -1
  128. package/generated/MockVerifierAbi.ts +17 -49
  129. package/generated/NewGovernanceProposerPayloadAbi.ts +17 -49
  130. package/generated/OutboxAbi.ts +17 -49
  131. package/generated/OutboxBytecode.ts +1 -1
  132. package/generated/RegistryAbi.ts +17 -49
  133. package/generated/RewardDistributorAbi.ts +41 -49
  134. package/generated/RewardDistributorBytecode.ts +1 -1
  135. package/generated/RollupAbi.ts +174 -546
  136. package/generated/RollupBytecode.ts +43 -55
  137. package/generated/RollupStorage.ts +6 -6
  138. package/generated/SlashFactoryAbi.ts +17 -49
  139. package/generated/SlasherAbi.ts +17 -49
  140. package/generated/SlashingProposerAbi.ts +17 -49
  141. package/generated/StakingLibAbi.ts +17 -49
  142. package/generated/StakingLibBytecode.ts +1 -1
  143. package/generated/TestERC20Abi.ts +17 -49
  144. package/generated/TokenPortalAbi.ts +17 -49
  145. package/generated/TokenPortalBytecode.ts +1 -1
  146. package/generated/UniswapPortalAbi.ts +17 -49
  147. package/generated/UniswapPortalBytecode.ts +1 -1
  148. package/generated/ValidatorSelectionLibAbi.ts +17 -49
  149. package/generated/ValidatorSelectionLibBytecode.ts +1 -1
  150. package/generated/checksum.ts +1 -1
  151. package/generated/index.ts +0 -4
  152. package/package.json +1 -1
  153. package/dest/IProofCommitmentEscrowAbi.d.ts +0 -1261
  154. package/dest/IProofCommitmentEscrowAbi.d.ts.map +0 -1
  155. package/dest/IProofCommitmentEscrowAbi.js +0 -1665
  156. package/dest/IProofCommitmentEscrowBytecode.d.ts +0 -9
  157. package/dest/IProofCommitmentEscrowBytecode.d.ts.map +0 -1
  158. package/dest/IProofCommitmentEscrowBytecode.js +0 -9
  159. package/dest/ProofCommitmentEscrowAbi.d.ts +0 -1337
  160. package/dest/ProofCommitmentEscrowAbi.d.ts.map +0 -1
  161. package/dest/ProofCommitmentEscrowAbi.js +0 -1765
  162. package/dest/ProofCommitmentEscrowBytecode.d.ts +0 -9
  163. package/dest/ProofCommitmentEscrowBytecode.d.ts.map +0 -1
  164. package/dest/ProofCommitmentEscrowBytecode.js +0 -9
  165. package/generated/IProofCommitmentEscrowAbi.ts +0 -1664
  166. package/generated/IProofCommitmentEscrowBytecode.ts +0 -8
  167. package/generated/ProofCommitmentEscrowAbi.ts +0 -1764
  168. package/generated/ProofCommitmentEscrowBytecode.ts +0 -8
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
3
  */
4
- export declare const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a0526103dc60c05260805160a05160c05161545f6100625f395f6105c101525f818161066d015281816107c001528181610c420152610d9001525f61056a015261545f5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004615068565b610054565b604051901515815260200160405180910390f35b5f6100626101bb6020615144565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a610195565b90505f61009787876101aa565b604083015190915084146100be5760405163fa06659360e01b815260040160405180910390fd5b5f6100cf82878786604001516104a9565b90506101208686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508451606081015160809091015160408801519193509150610554565b815160a001525f6101318383610665565b905080610151576040516313f8744360e31b815260040160405180910390fd5b5f61015d848685610766565b90508061017d576040516352ec174560e11b815260040160405180910390fd5b8180156101875750805b9a9950505050505050505050565b61019d61483a565b6101a5610f05565b905090565b6101b2614bb8565b6101bf60205f848661515b565b6101c891615182565b81526101d860406020848661515b565b6101e191615182565b60208201526101f460606040848661515b565b6101fd91615182565b604082015261021861021360e06060858761515b565b6117eb565b606082015261022f61021361016060e0858761515b565b60808201526102476102136101e0610160858761515b565b60a082015261025f6102136102606101e0858761515b565b6101008201526102786102136102e0610260858761515b565b6101208201526102916102136103606102e0858761515b565b60c08201526102a96102136103e0610360858761515b565b6101408201526102c26102136104606103e0858761515b565b60e08201526104605f5b601c811015610359575f5b6008811015610350576103038684876102f182602061519f565b926102fe9392919061515b565b6118df565b84610160015183601c811061031a5761031a6151b2565b60200201518260088110610330576103306151b2565b602002018181525050602083610346919061519f565b92506001016102d7565b506001016102cc565b505f5b60288110156103ad576103768583866102f182602061519f565b836101800151826028811061038d5761038d6151b2565b6020020181815250506020826103a3919061519f565b915060010161035c565b505f5b6103bc6001601c6151c6565b811015610412576103e18583866103d482608061519f565b926102139392919061515b565b836101a0015182601b81106103f8576103f86151b2565b602002015261040860808361519f565b91506001016103b0565b505f5b601c8110156104665761042f8583866102f182602061519f565b836101c0015182601c8110610446576104466151b2565b60200201818152505060208261045c919061519f565b9150600101610415565b506104788482856103d482608061519f565b6101e083015261048981608061519f565b905061049c8482856103d482608061519f565b6102008301525092915050565b6104b1614dbd565b5f6104bf868686868561193b565b90835290506104ce81876119b8565b602084019190915290506104e181611b51565b604084019190915290506104f58682611bb2565b606084019190915290506105098682611c86565b6080840191909152905061051d8682611d11565b60a084019190915290506105318682611e7f565b60c084019190915290506105458682611ef1565b5060e083015250949350505050565b5f6001808261059d866105988961059361058e8a7f000000000000000000000000000000000000000000000000000000000000000061519f565b611f48565b611f66565b611f7f565b90505f6105bb876105b68a61059361058e8b600161519f565b611f98565b90505f5b7f000000000000000000000000000000000000000000000000000000000000000081101561064d575f61060a8b83815181106105fd576105fd6151b2565b6020026020010151611f48565b905061061a866105938684611f7f565b955061062a856105938584611f7f565b9450610636848b611f7f565b9350610642838b611f98565b9250506001016105bf565b506106588484611fc7565b9998505050505050505050565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561073c575f86610160015182601c81106106ab576106ab6151b2565b602002015190505f6106bd8286611fd5565b9050806106dd576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106106f4576106f46151b2565b602002015190506107058382611ff8565b955061072c886040015185601c8110610720576107206151b2565b602002015186836121a7565b945050505080600101905061066b565b505f610756866101800151865f01518760200151856121d2565b90508281145b9695505050505050565b5f6107946040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5f6107a28460a00151612240565b90506107ac614e41565b6107b4614e60565b5f6107e48760e00151857f00000000000000000000000000000000000000000000000000000000000000006122a5565b805160c089015191925061080491610598908460015b6020020151611f66565b855260a08701516108309061081890612335565b825160c08a015161059391906105b6908660016107fa565b6020860152600183526101e08901516108489061239e565b82526001606086018190525f60808701525b602381116109005761087b610871875f01516123e8565b8760600151611f66565b84826046811061088d5761088d6151b2565b602002015260808601516101808b01516108d09190610598906108b16001866151c6565b602881106108c1576108c16151b2565b60200201518960600151611f66565b8660800181815250506108eb86606001518960800151611f66565b60608701526108f9816151d9565b905061085a565b505f61090e6023600161519f565b90505b6028811161098f5761092961087187602001516123e8565b84826046811061093b5761093b6151b2565b602002015260808601516101808b015161095f9190610598906108b16001866151c6565b86608001818152505061097a86606001518960800151611f66565b6060870152610988816151d9565b9050610911565b50606088015182600160200201526080880151826002602002015260a0880151826003602002015260c0880151826004602002015260e0880151826005602002015261010088015182600660200201526101208801518260076020020152610140880151826008602002015261016088015182600960200201526101a088015182600a602002015261018088015182600b60200201526101c088015182600c60200201526101e088015182600d602002015261020088015182600e602002015261022088015182600f60200201526102408801518260106020020152610260880151826011602002015261028088015182601260200201526102a088015182601360200201526102c088015182601460200201526102e08801518260156020020152610300880151826016602002015261032088015182601760200201526103408801518260186020020152610360880151826019602002015261038088015182601a60200201526103a088015182601b60200201526060890151610b139061239e565b6103808301526080890151610b279061239e565b6103a083015260a0890151610b3b9061239e565b6103c083015260c0890151610b4f9061239e565b6103e083015260e0890151610b639061239e565b610400830152610140890151610b789061239e565b610420830152610100890151610b8d9061239e565b610440830152610120890151610ba29061239e565b6104608301526060890151610bb69061239e565b6104808301526080890151610bca9061239e565b6104a083015260a0890151610bde9061239e565b6104c083015260c0890151610bf29061239e565b6104e083015260e0890151610c069061239e565b6105008301525f604086015260c0870151610c2090612400565b60608601525f5b610c336001601c6151c6565b811015610d78575f610c6660017f00000000000000000000000000000000000000000000000000000000000000006151c6565b82101590505f81610ccf576060880151610c969085610c8686600261519f565b601d81106107fa576107fa6151b2565b9050610ca1816123e8565b8684610caf6028600161519f565b610cb9919061519f565b60468110610cc957610cc96151b2565b60200201525b610cfe8860400151610598838f6101c00151876001610cee919061519f565b601c81106107fa576107fa6151b2565b6040890152606088015160c08b0151610d179190611f66565b60608901526101a08c0151610d419084601b8110610d3757610d376151b2565b602002015161239e565b8584610d4f6028600161519f565b610d59919061519f565b60468110610d6957610d696151b2565b60200201525050600101610c27565b505f610db4886060015187608001518c6101c00151887f000000000000000000000000000000000000000000000000000000000000000061240b565b6040870151909150610dcb9061059883855f6107fa565b604087018190526101c08b01515160c08a0151610df9929161059891610df19190611f66565b8560016107fa565b6040808801919091528051808201909152600181526002602082015283610e22601c602861519f565b60468110610e3257610e326151b2565b6020020152604086015184610e49601c602861519f565b60468110610e5957610e596151b2565b60200201526102008a01515f90610e6f9061239e565b90508084610e7f601c602861519f565b610e8a90600161519f565b60468110610e9a57610e9a6151b2565b602002015260e089015185610eb1601c602861519f565b610ebc90600161519f565b60468110610ecc57610ecc6151b2565b60200201525f610edc8587612505565b90505f610ee8836125d6565b9050610ef4828261264d565b9d9c50505050505050505050505050565b610f0d61483a565b50604080516103c0810182526302000000815260196020808301919091526103dc82840152825180840184527f2712c970b74611f732af1b59172fe243b223fcfb9080fca1bedcf1de9e5d042381527f06d0ad929088d18900f2eb8f187709d27b7b0eafea0ab59d080897a492e247b9818301526060830152825180840184527f11a9fa1cbe6efaf637ce4d61041027f97e385c53bb3c57ed106f7cd2235ebce481527f24ced689c9545851656da6534034fa2c1bcb615f4aa07189cabbd4035acdbf18818301526080830152825180840184527f10911426d5759743209ccde685b99ddca7d27a151bc70e9fc61a2cdb993499c881527f0200fa43f4932ee957a66cc4334ba4393d4aeab579c082d5f30ab1c37f9854ef8183015260a0830152825180840184527f081d7f30f863aec973b315f6c10b28d0c760865d0169742f4a5e777c9f80f11c81527f062b5ed1b7e538167765c0d9458aba68dc31e8ad44bb184a9c79151630591f0e8183015260c0830152825180840184527f221360d516e7cf250ed6f7fc2b2d187613891551090706de3ed8c8478ac2fc4d81527f247d199bde13940f72bd1946e990e330062c7176fcc1ee5a5e79ab56701d6a858183015260e0830152825180840184527f29e12f0700c9be2d86be398e92dd50c3a99c2104653a21102d82a6ce30c628e481527f22adf70046c9d01c84621283f9b7b764a334f0b3109114ed8ff990cce23c73ec81830152610100830152825180840184527f035d97a928b728d4f4d460c4bdcf11ea8c8bd382f233fe512c394b0b6da9152481527f26961d0bf338d36d2b5ec2f59675073ad262b9bacae3bc100ea54158e763f64781830152610120830152825180840184527f188463d76d1d1468ff182d81009de7297324b8c6a9164c7efdabb8346c75366781527f0d91169e2de6cb6c6c57227ae7ac321dcb58b68acfa43414da9fb78e5b87202481830152610140830152825180840184527f126d4c55c471fc5a9e10e448b3fc929ed800d8e45b1f5c9e948c6d78245c264881527f1ec54a103ff269568e7eb396c31d2e842b1397d1c2dbaef206206033f4b76b2c81830152610160830152825180840184527f14c96f1f0c0bb844de90c18f9443caea4d3d22aef6beda5018f101928ac6c13c81527f2165932c2f8e86ac8ed6e04b63840c45a387b40ae7ea23f7bc7de1738af886c281830152610180830152825180840184527f275a8178655a17b44c31b394db33096f1b113591ad65bbb59094af81a554542981527f29317a6ead44164885d1cc5cbb165f5e28b080d0b8051eb7abb1711deb80a724818301526101a0830152825180840184527f0a167c1798827971055a7ecb0b67ac4f09fb8c157ac25cc07f67fcf0ecd38c9f81527e8a502361a7c9b0495ea52850e831cb9e2bdb602fc253ecd21a80597f161c98818301526101c0830152825180840184527f17bb1ad26bd346c45cbb10ac80c1b16f7f0278a3a9e4e7900522d1940f9682f581527f1bb7b7e21e31dd59fa7a72d0f9ab201eaa3f8f7befdeffe1a9d5a8d7b836d6c4818301526101e0830152825180840184527e5f8e308c6d9e1c74e61b3a154b3ceadf851fe9077c80b8d29151fb3e6f1f2f81527f1b8b469b9d02e0a30a2ef5ba2fa97b9253ef28005e1bf4fe8dec9fcf23d62a5481830152610200830152825180840184527f2b65c80aea0bb67a1941126cd2fe0c3f1c19bcc783f7879366a6ccceb9f896d481527f287bdf086fefa74bf8c10abea5b5000e9a55287849dfd2907aff898a09b2c22481830152610220830152825180840184527f0f3da7b4cec5d8f5d72b797ca9c8c52215a57dbd22be7c7f8fc7f59a053e2c1f81527f1a1edbe132858e1308f9bda9426887da0d76c47ebfe6ffc790a38ce6942b2ee981830152610240830152825180840184527f26376a4c337a051cacd0be1ef081a8814adf4371d3fbf28e31a9219d7f76e26681527f2d8e534ecdf4dc1ce0b1dd2d2f4921d49e925b37542aa9165245995d3cef42ca81830152610260830152825180840184527f0ff9206792483f2ecb9d0ac9f182f488b7c5b32b38a8464a15847c4338922d9881527f08c1f38c6574b6d953cc2e5f05c806c837a09527838aefb4abddefc90d65af2f81830152610280830152825180840184527f1b52cefe7ea0870c64628ccf700f48d99680a13673e6d6fba9353d7f7f23a96681527f21191880e6ddc0ab10685052c0ca9eb64a1009127d758dd2c5759b34297c5f5c818301526102a0830152825180840184527f1e5bd406135f74dc7c3a17ca8bfe9efd191f1666dc18891889b3fc8938f48cd781527f1a8bde8bd2bd6fe22bf4ebba88994e04f06e19990ee7eb5f578b29cb0543beea818301526102c0830152825180840184527f05d7409210a4e3148d4d8fdf3069e05d1382c4c1c8387cd9351fc220eca271f281527f0bd493a53e52a00bdd9f30f9056341c7e45eee08836939f2f4922911f9dd2dbc818301526102e0830152825180840184527f0d1c51a0944e73b5bf5059109cfc7756b18ab597ee97fcdceb68e08e7a9325ec81527f2d0ebb65c43bb88f0e0af105cb368e35a8117262fa463c5e4a91e60a63285d5881830152610300830152825180840184527f237fc3d6ca839bf8fe66beb52f778994d8d05f3496301df3cb1030649802eb1881527f1013ad0339d32e695efdc9e28675f47f332bda5954966f00469214f4ee763b8481830152610320830152825180840184527f0c124a2788b4e0e45ebc1003affc7b699ea00567da3fa1f4bef7f9f97698340481527f0655bd829b537acf9fdc36831274395bdd5d3c181d2e84ddd3dfa1192c5f518481830152610340830152825180840184527f2664e1b3d5bd93796c3e968511ad456c3b10db55de4e939e1a8eb6279d99ea9a81527f2a8a81f4857a08db4de35ca43cc4e145c8719ce30616be286b5a565e4ee99e9c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f0e8a4cc99082069c86657280d83eb6670d0794a1b2ac664cc22206af5f4b3fe683527f28cf543fe17aab5161e0ebdfb7fe58d6c7a329a5a6a5494f158f4a592ae1c8d4908301526103a081019190915290565b61181260405180608001604052805f81526020015f81526020015f81526020015f81525090565b6080821461185d5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064015b60405180910390fd5b60408051608081019091528061187660205f868861515b565b61187f91615182565b815260209081019061189590604090868861515b565b61189e91615182565b81526020016118b160606040868861515b565b6118ba91615182565b81526020016118cd60806060868861515b565b6118d691615182565b90529392505050565b5f602082146119275760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b6044820152606401611854565b61193461058e8385615182565b9392505050565b61196e6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61197b87878787612851565b60408601919091526020850191909152908352925061199a8388612c84565b60808501919091526060840191909152919791965090945050505050565b6119c0614e99565b5f6119c9614eb8565b8481526101408401805151602080840191909152815181015160408085019190915282518101516060808601919091529251830151608085015260e080880180515160a0870152805184015160c087015280518301519186019190915251909201516101008401529051611a5e91611a43918491016151f1565b60405160208183030381529060405280519060200120611f48565b9150611a6982612d57565b6020850152835260015b611a7f60026019615239565b811015611aff57611a9c83604051602001611a4391815260200190565b9250611aa783612d57565b85611ab3846002615144565b60198110611ac357611ac36151b2565b6020020186611ad3856002615144565b611ade90600161519f565b60198110611aee57611aee6151b2565b602002019190915252600101611a73565b50611b1682604051602001611a4391815260200190565b91505f611b2283612d57565b85611b2f600160196151c6565b60198110611b3f57611b3f6151b2565b60200201919091525050509250929050565b611b59614ed7565b5f805b601c811015611bab57611b7b84604051602001611a4391815260200190565b93505f611b8785612d57565b8584601c8110611b9957611b996151b2565b60200201919091525050600101611b5c565b5090929050565b611bba614ed7565b5f805b601c811015611c7d57611bce614eb8565b8481525f5b6008811015611c375786610160015183601c8110611bf357611bf36151b2565b60200201518160088110611c0957611c096151b2565b602002015182611c1a83600161519f565b60098110611c2a57611c2a6151b2565b6020020152600101611bd3565b50611c4c81604051602001611a4391906151f1565b94505f611c5886612d57565b8685601c8110611c6a57611c6a6151b2565b6020020191909152505050600101611bbd565b50909391925050565b5f5f611c90614ef6565b8381525f5b6028811015611ce3578561018001518160288110611cb557611cb56151b2565b602002015182611cc683600161519f565b60298110611cd657611cd66151b2565b6020020152600101611c95565b50611cf881604051602001611a43919061524c565b91505f611d0483612d57565b5096929550919350505050565b5f5f611d1b614f15565b8381525f5b611d2c6001601c6151c6565b811015611e6a57856101a0015181601b8110611d4a57611d4a6151b2565b60200201515182611d5c836004615144565b611d6790600161519f565b606d8110611d7757611d776151b2565b60200201526101a086015181601b8110611d9357611d936151b2565b60200201516020015182826004611daa9190615144565b611db590600261519f565b606d8110611dc557611dc56151b2565b60200201526101a086015181601b8110611de157611de16151b2565b60200201516040015182611df6836004615144565b611e0190600361519f565b606d8110611e1157611e116151b2565b60200201526101a086015181601b8110611e2d57611e2d6151b2565b60200201516060015182611e42836004615144565b611e4d90600461519f565b606d8110611e5d57611e5d6151b2565b6020020152600101611d20565b50611cf881604051602001611a439190615280565b5f5f611e89614f34565b8381525f5b601c811015611edc57856101c0015181601c8110611eae57611eae6151b2565b602002015182611ebf83600161519f565b601d8110611ecf57611ecf6151b2565b6020020152600101611e8e565b50611cf881604051602001611a4391906152b4565b5f5f611efb614f53565b8381526101e085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611cf891611a43918491016152e8565b5f611f605f51602061540a5f395f51905f528361531b565b92915050565b5f5f51602061540a5f395f51905f528284099392505050565b5f5f51602061540a5f395f51905f528284089392505050565b5f5f51602061540a5f395f51905f52611fbe835f51602061540a5f395f51905f526151c6565b84089392505050565b5f6119348361059384612335565b81515f908190611fed908560015b6020020151611f7f565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156120df576120d5826105938784611f98565b91506001016120be565b506120e8614f71565b5f5b6008811015612149575f848260088110612106576121066151b2565b6020020151905061211b816105938985611f98565b905061212681612335565b90508083836008811061213b5761213b6151b2565b6020020152506001016120ea565b505f5b600881101561219c575f878260088110612168576121686151b2565b60200201519050612185818484600881106107fa576107fa6151b2565b90506121918682611f7f565b95505060010161214c565b5061075c8483611f66565b5f5f6121bd600161059885610593896001611f98565b90506121c98482611f66565b95945050505050565b5f6121db614f90565b6121e6868285612d90565b6121f286868386612f3c565b6121fe86868386613124565b612209868285613320565b612214868285613508565b6122208686838661384b565b61222b8682856140e5565b6122368682856144b0565b61075c81856147a5565b612248614ed7565b81815260015b601c81101561229f57612280826122666001846151c6565b601c8110612276576122766151b2565b6020020151612400565b8282601c8110612292576122926151b2565b602002015260010161224e565b50919050565b6122ad614f34565b836122c66122c182865f6020020151611f98565b612335565b82525f5b601c81101561232c575f6122df85600161519f565b8211612301576122fe6122c1848885601c8110611fe357611fe36151b2565b90505b808461230e84600161519f565b601d811061231e5761231e6151b2565b6020020152506001016122ca565b50509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061540a5f395f51905f520360808201525f51602061540a5f395f51905f5260a082015260205f60c08360055afa905080612393575f5ffd5b50505f519392505050565b604080518082019091525f8082526020820152604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f611f60825f51602061540a5f395f51905f526151c6565b5f611f608283611f66565b5f601c5b80156124fa575f846124226001846151c6565b601c8110612432576124326151b2565b602002015190505f886124466001856151c6565b601c8110612456576124566151b2565b602002015190505f8761246a6001866151c6565b601c811061247a5761247a6151b2565b602002015190505f6124b5612499612492868d611f66565b6002611f66565b6105b6846105936124af8961059360018b611f98565b88611f98565b90506124d6816105936122c16124d08861059360018a611f98565b87611f7f565b9050868511806124e457819a505b5050505050806124f39061532e565b905061240f565b509395945050505050565b604080518082019091525f80825260208201525f612525601c602861519f565b61253090600261519f565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125be5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612565565b50805184526020810151602085015250505092915050565b604080518082019091525f80825260208201527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4782602001517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761263a91906151c6565b612644919061531b565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516127e39190615343565b5f60405180830381855afa9150503d805f811461281b576040519150601f19603f3d011682016040523d82523d5f602084013e612820565b606091505b50915091505f8180602001905181019061283a9190615359565b90508280156128465750805b979650505050505050565b5f8080808061286186600361519f565b61286c90600c61519f565b67ffffffffffffffff81111561288457612884615378565b6040519080825280602002602001820160405280156128ad578160200160208202803683370190505b509050885f01515f1b815f815181106128c8576128c86151b2565b60200260200101818152505088602001515f1b816001815181106128ee576128ee6151b2565b60200260200101818152505088604001515f1b81600281518110612914576129146151b2565b60209081029190910101525f5b868110156129735788888281811061293b5761293b6151b2565b9050602002013582826003612950919061519f565b81518110612960576129606151b2565b6020908102919091010152600101612921565b506060890151518161298688600361519f565b81518110612996576129966151b2565b60209081029190910181019190915260608a01510151816129b888600361519f565b6129c390600161519f565b815181106129d3576129d36151b2565b6020908102919091010152606089015160400151816129f388600361519f565b6129fe90600261519f565b81518110612a0e57612a0e6151b2565b60209081029190910101526060808a0151015181612a2d88600361519f565b612a3890600361519f565b81518110612a4857612a486151b2565b602090810291909101015260808901515181612a6588600361519f565b612a7090600461519f565b81518110612a8057612a806151b2565b60209081029190910181019190915260808a0151015181612aa288600361519f565b612aad90600561519f565b81518110612abd57612abd6151b2565b602090810291909101015260808901516040015181612add88600361519f565b612ae890600661519f565b81518110612af857612af86151b2565b602090810291909101015260808901516060015181612b1888600361519f565b612b2390600761519f565b81518110612b3357612b336151b2565b602090810291909101015260a08901515181612b5088600361519f565b612b5b90600861519f565b81518110612b6b57612b6b6151b2565b60209081029190910181019190915260a08a0151015181612b8d88600361519f565b612b9890600961519f565b81518110612ba857612ba86151b2565b602090810291909101015260a08901516040015181612bc888600361519f565b612bd390600a61519f565b81518110612be357612be36151b2565b602090810291909101015260a08901516060015181612c0388600361519f565b612c0e90600b61519f565b81518110612c1e57612c1e6151b2565b602002602001018181525050612c3e81604051602001611a43919061538c565b9150612c4982612d57565b6040805160208101869052929750909550612c649101611a43565b91505f612c7083612d57565b50959a949950949750909550919350505050565b5f5f5f612c8f614faf565b8581526101008581018051516020808501919091528151810151604080860191909152825181015160608087019190915292518301516080860152610120808a0180515160a0880152805184015160c080890191909152815184015160e089015290518501519587019590955293890180515194860194909452835182015161014086015283518101516101608601529251909101516101808401529051612d3d91611a43918491016153c1565b9150612d4882612d57565b90979096509194509092505050565b5f80826fffffffffffffffffffffffffffffffff8116608082901c612d7b82611f48565b9450612d8681611f48565b9350505050915091565b5f612d9c84600761480a565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612dfd612df7612dd1856003611f98565b610593612dec612de18b5f61480a565b6105938c601c61480a565b6105938b601b61480a565b83611f66565b9050612e7e612e73612e5a612e41612e2885610598612e1d8d600261480a565b6105938e601b61480a565b610598612e368c600361480a565b6105938d601c61480a565b610598612e4f8b600461480a565b6105938c601d61480a565b610598612e688a600561480a565b6105938b601e61480a565b61059888600161480a565b9050612e9d81610598612e92866001611f98565b6105938a602661480a565b9050612ea98184611f66565b9050612eb58185611f66565b8552505f9050612eef612ee5612eda612ecf88601b61480a565b61059889601e61480a565b6105b688602361480a565b610598875f61480a565b9050612f0081610593846002611f98565b9050612f1181610593846001611f98565b9050612f1d8183611f66565b9050612f298184611f66565b9050808460015b60200201525050505050565b5f5f5f612f72612f68612f5089601b61480a565b610598612f5e8b601161480a565b8a60600151611f66565b8760800151611f7f565b9050612fab81610593612fa1612f898b601c61480a565b610598612f978d601261480a565b8c60600151611f66565b8960800151611f7f565b9050612fd081610593612fa1612fc28b601d61480a565b610598612f978d601361480a565b9050612ff581610593612fa1612fe78b601e61480a565b610598612f978d601461480a565b92505f9050613019612f6861300b89601b61480a565b610598612f5e8b600d61480a565b905061303e81610593612fa16130308b601c61480a565b610598612f978d600e61480a565b905061306381610593612fa16130558b601d61480a565b610598612f978d600f61480a565b905061308881610593612fa161307a8b601e61480a565b610598612f978d601061480a565b91505f90506130af6130a961309e89601f61480a565b6105988a601961480a565b84611f66565b90506130e4816105b66130de6130c68b602761480a565b6105986130d48d601a61480a565b8c60a00151611f66565b85611f66565b90506130f08185611f66565b6040860152505f6131136130de61310889601a61480a565b6105938a602761480a565b606090950194909452505050505050565b5f5f61318261316a61315261313d612fa18a601561480a565b61059861314b8b601661480a565b8a51611f66565b6105986131608a601761480a565b8960200151611f66565b61059861317889601861480a565b8860400151611f66565b91505f6131b96131a061319689601b61480a565b8860800151611f7f565b6105986131ae8a600361480a565b6105938b602361480a565b90505f6131e26131ca89601c61480a565b6105986131d78b5f61480a565b6105938c602461480a565b90505f61320c6131f38a601d61480a565b6105986132018c600161480a565b6105938d602561480a565b905061324b61323361322585610598868d5f0151611f66565b610598848c60200151611f66565b6105986132418c600461480a565b8b60400151611f66565b93505050505f61325f6130a988602061480a565b90505f6132706130a989602061480a565b90505f6132a861328f6132848b602261480a565b6105988c600661480a565b6105b661329d8c602261480a565b6105938d600661480a565b90505f6132cc6132c66132bb8789611f66565b6105938d602061480a565b83611f98565b90506132d88188611f66565b90505f6133006132f26132ec8d600661480a565b87611f66565b6105b66132ec8e602161480a565b60808a018390529050808960055b60200201525050505050505050505050565b5f61332c5f6001611f98565b90505f61333a5f6002611f98565b90505f6133485f6003611f98565b90505f61336461335988601c61480a565b6105b689601b61480a565b90505f61338061337589601d61480a565b6105b68a601c61480a565b90505f61339c6133918a601e61480a565b6105b68b601d61480a565b90505f6133b86133ad8b602361480a565b6105b68c601e61480a565b9050836133c981610593818b611f7f565b90506133d981610593878a611f7f565b90506133e9816105938789611f7f565b90506133fa816105938d600861480a565b9050613406818a611f66565b60c08b0152508261341b81610593818b611f7f565b905061342b81610593868a611f7f565b905061343b816105938689611f7f565b905061344c816105938d600861480a565b9050613458818a611f66565b60e08b0152508161346d81610593818b611f7f565b905061347d81610593858a611f7f565b905061348d816105938589611f7f565b905061349e816105938d600861480a565b90506134aa818a611f66565b6101008b015250806134c081610593818b611f7f565b90506134d081610593848a611f7f565b90506134e0816105938489611f7f565b90506134f1816105938d600861480a565b90506134fd818a611f66565b9050808a600961330e565b6135416040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61354c84601c61480a565b815261355984601d61480a565b602082015261356984602361480a565b604082015261357984602661480a565b606082015261358984602561480a565b608082015261359984602461480a565b60a08201525f6135aa85600261480a565b90505f6135b7865f61480a565b90505f6135cb8460400151855f0151611f98565b90505f6135e085602001518660200151611f66565b606086015190915086905f906135f69080611f66565b90505f61361461360e89602001518a60600151611f66565b88611f66565b90505f61363361362c8a60a001518b60400151611f7f565b8a51611f7f565b90506136426132ec8288611f66565b905061366361365d6136576124af8487611f98565b84611f7f565b83611f7f565b905061368b6136806136758387611f66565b6105938f600961480a565b61059360018a611f98565b6101408c015250505050602085015160808601515f916136aa91611f7f565b90505f6136c86136be886060015188611f66565b8860200151611f98565b90505f6136ec6136d88487611f66565b6105986130de8b60a001518c5f0151611f98565b90506137146137096136fe838c611f66565b6105938e600961480a565b610593600189611f98565b6101608b0152505f9150613735905061372e836011611f7f565b8751611f66565b90505f6137428384611f7f565b905061374e8182611f7f565b90505f61375c836009611f66565b905061378561377f6130a96137788b60a001518c5f0151611f7f565b8b51611f7f565b82611f98565b60c089018190525f906137a09061360e90613675908d611f66565b90506137b38b600a602002015182611f7f565b6101408c0152505086515f92506137da915061372e906137d39080611f7f565b8851611f7f565b90505f61381a6137f5836105938a5f01518b60a00151611f98565b60208901516105b6906138089080611f7f565b6105938b602001518c60800151611f7f565b905061383789600b602002015161059861360e613675858d611f66565b89600b602002015250505050505050505050565b6138df604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6139146138fb6138f087601b61480a565b61059388602461480a565b61059861390988602361480a565b61059389601c61480a565b815261395961394e61393561392a88601b61480a565b61059389601e61480a565b61059861394389601c61480a565b6105938a601d61480a565b6105b687602561480a565b6040820181905261396e90600160441b611f66565b60408201819052613984906105b687602661480a565b6040820181905281516139979190611f7f565b604082018190526139ad9061059387600561480a565b604082015280516139c290600160441b611f66565b8082526139e2906105986139d788602361480a565b61059389602461480a565b808252602082018190526139fe906105b6612ecf88601d61480a565b60208201819052613a149061059387600461480a565b6020820152805160608201819052613a319061059887601e61480a565b60608201819052613a55906105b6613a4a88602561480a565b61059889602661480a565b60608201819052613a6a90610593875f61480a565b8160600181815250505f613a93613a8983602001518460400151611f7f565b8360600151611f7f565b9050613aa48161059388600361480a565b9050613abc613ab487602461480a565b614000611f66565b60808301819052613ad29061059888602361480a565b60808301819052613ae590614000611f66565b60808301819052613afb9061059888601d61480a565b60808301819052613b0e90614000611f66565b60808301819052613b249061059888601c61480a565b60808301819052613b3790614000611f66565b60808301819052613b4d9061059888601b61480a565b60808301819052613b63906105b688601e61480a565b60808301819052613b799061059388600561480a565b6080830152613b8c613ab487602561480a565b60a08301819052613ba29061059888602461480a565b60a08301819052613bb590614000611f66565b60a08301819052613bcb9061059888602361480a565b60a08301819052613bde90614000611f66565b60a08301819052613bf49061059888601e61480a565b60a08301819052613c0790614000611f66565b60a08301819052613c1d9061059888601d61480a565b60a08301819052613c33906105b688602661480a565b60a08301819052613c4890610593885f61480a565b60a0830181905260808301515f91613c609190611f7f565b9050613c718161059389600461480a565b9050613c8b613c8188601d61480a565b8760400151611f66565b60c08401819052613ca4906105986131608a601c61480a565b60c08401819052613cc490610598613cbd8a601b61480a565b8951611f66565b60c08401819052613cda9061059889600161480a565b60c0840181905260e08401819052613cf7906105b689601e61480a565b60c0840152613d0a61335988602361480a565b610140840152613d29613d1e88602661480a565b6105b689601e61480a565b610120840152610140830151613d4e90613d439080611f66565b846101400151611f98565b610280840152610140830151613d9090613d8590613d7e9061059360015f51602061540a5f395f51905f526151c6565b6001611f7f565b846101200151611f66565b6101608401819052613dc790613db990610593613dae8b600261480a565b6105938c600361480a565b6105936132ec8a600a61480a565b6101a0860152610280830151613de990613db990610593613dae8b600261480a565b6101c086015260c0830151613e1190610593613e068a600261480a565b6105938b600361480a565b6101e08401525f613e30613e2689601e61480a565b8560e00151611f98565b9050613e3f61377f8283611f66565b6101a0850152613e5361317889602561480a565b6101008501819052613e7790610598613e6d8b602461480a565b8a60200151611f66565b6101008501819052613e919061059861314b8b602361480a565b610100850152613eb0613ea589602661480a565b856101000151611f98565b6101008501525f613ec56133918a602561480a565b9050613f19613ef3612df7613d7e88610140015160015f51602061540a5f395f51905f5261059391906151c6565b610593613d7e88610100015160015f51602061540a5f395f51905f5261059391906151c6565b610180860152610100850151613f3e90613f339080611f66565b866101000151611f98565b6101c0860152610180850151613f7190613f5d906105938c600761480a565b610593613f6b8c600a61480a565b89611f66565b6101e0880152610280850151613f9090613f5d906105938c600761480a565b6102008801526101c0850151613faf90613f5d906105938c600761480a565b6102208801526101a0850151613fca906105938b600761480a565b610200860152613fe9613fde8a602461480a565b6105b68b601c61480a565b610220860152610140850151614028906133919061401d90613d7e9061059360015f51602061540a5f395f51905f526151c6565b876102200151611f66565b61024086018190526101e0860151610260870181905261405f91610598906105936140548e600561480a565b6105938f600261480a565b610260860181905260c08601516140829190610598906105936140548e5f61480a565b610260860181905261020086015161409a9190611f7f565b61026086018190526140b0906136579086611f7f565b6102a086018190526140ca90610593613f6b8c600a61480a565b6102a0860181905287600c6020020152505050505050505050565b61415b6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61417461416985601b61480a565b61059886600261480a565b815261418f61418485601c61480a565b61059886600361480a565b60208201526141ad6141a285601d61480a565b61059886600461480a565b60408201526141cb6141c085601e61480a565b61059886600561480a565b606082015280516141fd906141f6906141ef906141e89080611f66565b8451611f66565b8351611f66565b8251611f66565b6080820152602081015161423b90614231906142279061421d9080611f66565b8460200151611f66565b8360200151611f66565b8260200151611f66565b60a082015260408101516142799061426f906142659061425b9080611f66565b8460400151611f66565b8360400151611f66565b8260400151611f66565b60c082015260608101516142b7906142ad906142a3906142999080611f66565b8460600151611f66565b8360600151611f66565b8260600151611f66565b60e0820152608081015160a08201516142d09190611f7f565b61010082015260c081015160e08201516142ea9190611f7f565b61012082015260a081015161430e906143039080611f7f565b826101200151611f7f565b61014082015260e0810151614332906143279080611f7f565b826101000151611f7f565b6101608201526101208101516143489080611f7f565b6101e082018190526143699061435e9080611f7f565b826101600151611f7f565b6101e082015261010081015161437f9080611f7f565b6101a082018190526143a0906143959080611f7f565b826101400151611f7f565b6101a082018190526101608201516143b791611f7f565b6101808201526101408101516101e08201516143d39190611f7f565b6101c08201526143e7612df785600b61480a565b61020082018190526102408401516101808301516144129261059891610593906105b68a602361480a565b83601260200201526144428360136020020151610598836102000151610593856101a001516105b68a602461480a565b83601360200201526144728360146020020151610598836102000151610593856101c001516105b68a602561480a565b83601460200201526144a28360156020020151610598836102000151610593856101e001516105b68a602661480a565b836015602002015250505050565b6145026040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145377f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611f48565b81526020016145657f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611f48565b81526020016145927e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611f48565b81526020016145c07f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611f48565b905290506145dd6145d286601b61480a565b61059887600261480a565b61012083018190526146119061460690613d85906145fb9080611f66565b856101200151611f66565b836101200151611f66565b825261461e85601c61480a565b602083015261462e85601d61480a565b604083015261463e85601e61480a565b60608301528151602083015161466691613a899161465c9190611f7f565b8460400151611f7f565b60808301526146796130a986600c61480a565b610140830152815161469a9061469090835f6107fa565b8360800151611f7f565b60a08301526146c684601660200201516105988461014001516105938660a001516105b68b602361480a565b6102c085015260208201516146e190614690908360016107fa565b60c083015261470d84601760200201516105988461014001516105938660c001516105b68b602461480a565b6102e0850152604082015161472890614690908360026107fa565b60e083015261475484601860200201516105988461014001516105938660e001516105b68b602561480a565b610300850152606082015161476f90614690908360036107fa565b61010083015261479d84601960200201516105988461014001516105938661010001516105b68b602661480a565b846019612f30565b5f6147b1818481611fe3565b905060015b601a811015614803576147f9826105988684601a81106147d8576147d86151b2565b6020020151866147e96001876151c6565b601981106107fa576107fa6151b2565b91506001016147b6565b5092915050565b5f8282602781111561481e5761481e6153f5565b6028811061482e5761482e6151b2565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161487360405180604001604052805f81526020015f81525090565b815260200161489360405180604001604052805f81526020015f81525090565b81526020016148b360405180604001604052805f81526020015f81525090565b81526020016148d360405180604001604052805f81526020015f81525090565b81526020016148f360405180604001604052805f81526020015f81525090565b815260200161491360405180604001604052805f81526020015f81525090565b815260200161493360405180604001604052805f81526020015f81525090565b815260200161495360405180604001604052805f81526020015f81525090565b815260200161497360405180604001604052805f81526020015f81525090565b815260200161499360405180604001604052805f81526020015f81525090565b81526020016149b360405180604001604052805f81526020015f81525090565b81526020016149d360405180604001604052805f81526020015f81525090565b81526020016149f360405180604001604052805f81526020015f81525090565b8152602001614a1360405180604001604052805f81526020015f81525090565b8152602001614a3360405180604001604052805f81526020015f81525090565b8152602001614a5360405180604001604052805f81526020015f81525090565b8152602001614a7360405180604001604052805f81526020015f81525090565b8152602001614a9360405180604001604052805f81526020015f81525090565b8152602001614ab360405180604001604052805f81526020015f81525090565b8152602001614ad360405180604001604052805f81526020015f81525090565b8152602001614af360405180604001604052805f81526020015f81525090565b8152602001614b1360405180604001604052805f81526020015f81525090565b8152602001614b3360405180604001604052805f81526020015f81525090565b8152602001614b5360405180604001604052805f81526020015f81525090565b8152602001614b7360405180604001604052805f81526020015f81525090565b8152602001614b9360405180604001604052805f81526020015f81525090565b8152602001614bb360405180604001604052805f81526020015f81525090565b905290565b6040518061022001604052805f81526020015f81526020015f8152602001614bfd60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c2960405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c5560405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c8160405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cad60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cd960405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d0560405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3160405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3e614fce565b8152602001614d4b614ffc565b8152602001614d5861501b565b8152602001614d65614ed7565b8152602001614d9160405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614bb360405180608001604052805f81526020015f81526020015f81526020015f81525090565b604051806101000160405280614dfc6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001614e09614e99565b8152602001614e16614ed7565b8152602001614e23614ed7565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b604080518082019091525f8082526020820152815260200190600190039081614e705790505090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b604051806101a00160405280600d906020820280368337509192915050565b604051806103800160405280601c905b614fe6614f71565b815260200190600190039081614fde5790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b61505260405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020019060019003908161502b5790505090565b5f5f5f5f6040858703121561507b575f5ffd5b843567ffffffffffffffff811115615091575f5ffd5b8501601f810187136150a1575f5ffd5b803567ffffffffffffffff8111156150b7575f5ffd5b8760208284010111156150c8575f5ffd5b60209182019550935085013567ffffffffffffffff8111156150e8575f5ffd5b8501601f810187136150f8575f5ffd5b803567ffffffffffffffff81111561510e575f5ffd5b8760208260051b8401011115615122575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611f6057611f60615130565b5f5f85851115615169575f5ffd5b83861115615175575f5ffd5b5050820193919092039150565b80356020831015611f60575f19602084900360031b1b1692915050565b80820180821115611f6057611f60615130565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611f6057611f60615130565b5f600182016151ea576151ea615130565b5060010190565b5f8183825b60098110156152155781518352602092830192909101906001016151f6565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261524757615247615225565b500490565b5f8183825b6029811015615270578151835260209283019290910190600101615251565b5050506105208201905092915050565b5f8183825b606d8110156152a4578151835260209283019290910190600101615285565b505050610da08201905092915050565b5f8183825b601d8110156152d85781518352602092830192909101906001016152b9565b5050506103a08201905092915050565b5f8183825b600581101561530c5781518352602092830192909101906001016152ed565b50505060a08201905092915050565b5f8261532957615329615225565b500690565b5f8161533c5761533c615130565b505f190190565b5f82518060208501845e5f920191825250919050565b5f60208284031215615369575f5ffd5b81518015158114611934575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156153b6578151845260209384019390910190600101615398565b509195945050505050565b5f8183825b600d8110156153e55781518352602092830192909101906001016153c6565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220ffd8c175ac6f3ce348eaad1895fc4ea0e9c5ee63e59ddc3f848ef428a6634d7d64736f6c634300081b0033";
4
+ export declare const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a0526103dc60c05260805160a05160c0516154616100625f395f6105c101525f818161066d015281816107c001528181610c420152610d9001525f61056a01526154615ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b36600461506a565b610054565b604051901515815260200160405180910390f35b5f6100626101bb6020615146565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a610195565b90505f61009787876101aa565b604083015190915084146100be5760405163fa06659360e01b815260040160405180910390fd5b5f6100cf82878786604001516104a9565b90506101208686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508451606081015160809091015160408801519193509150610554565b815160a001525f6101318383610665565b905080610151576040516313f8744360e31b815260040160405180910390fd5b5f61015d848685610766565b90508061017d576040516352ec174560e11b815260040160405180910390fd5b8180156101875750805b9a9950505050505050505050565b61019d61483c565b6101a5610f05565b905090565b6101b2614bba565b6101bf60205f848661515d565b6101c891615184565b81526101d860406020848661515d565b6101e191615184565b60208201526101f460606040848661515d565b6101fd91615184565b604082015261021861021360e06060858761515d565b6117ed565b606082015261022f61021361016060e0858761515d565b60808201526102476102136101e0610160858761515d565b60a082015261025f6102136102606101e0858761515d565b6101008201526102786102136102e0610260858761515d565b6101208201526102916102136103606102e0858761515d565b60c08201526102a96102136103e0610360858761515d565b6101408201526102c26102136104606103e0858761515d565b60e08201526104605f5b601c811015610359575f5b6008811015610350576103038684876102f18260206151a1565b926102fe9392919061515d565b6118e1565b84610160015183601c811061031a5761031a6151b4565b60200201518260088110610330576103306151b4565b60200201818152505060208361034691906151a1565b92506001016102d7565b506001016102cc565b505f5b60288110156103ad576103768583866102f18260206151a1565b836101800151826028811061038d5761038d6151b4565b6020020181815250506020826103a391906151a1565b915060010161035c565b505f5b6103bc6001601c6151c8565b811015610412576103e18583866103d48260806151a1565b926102139392919061515d565b836101a0015182601b81106103f8576103f86151b4565b60200201526104086080836151a1565b91506001016103b0565b505f5b601c8110156104665761042f8583866102f18260206151a1565b836101c0015182601c8110610446576104466151b4565b60200201818152505060208261045c91906151a1565b9150600101610415565b506104788482856103d48260806151a1565b6101e08301526104898160806151a1565b905061049c8482856103d48260806151a1565b6102008301525092915050565b6104b1614dbf565b5f6104bf868686868561193d565b90835290506104ce81876119ba565b602084019190915290506104e181611b53565b604084019190915290506104f58682611bb4565b606084019190915290506105098682611c88565b6080840191909152905061051d8682611d13565b60a084019190915290506105318682611e81565b60c084019190915290506105458682611ef3565b5060e083015250949350505050565b5f6001808261059d866105988961059361058e8a7f00000000000000000000000000000000000000000000000000000000000000006151a1565b611f4a565b611f68565b611f81565b90505f6105bb876105b68a61059361058e8b60016151a1565b611f9a565b90505f5b7f000000000000000000000000000000000000000000000000000000000000000081101561064d575f61060a8b83815181106105fd576105fd6151b4565b6020026020010151611f4a565b905061061a866105938684611f81565b955061062a856105938584611f81565b9450610636848b611f81565b9350610642838b611f9a565b9250506001016105bf565b506106588484611fc9565b9998505050505050505050565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561073c575f86610160015182601c81106106ab576106ab6151b4565b602002015190505f6106bd8286611fd7565b9050806106dd576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106106f4576106f46151b4565b602002015190506107058382611ffa565b955061072c886040015185601c8110610720576107206151b4565b602002015186836121a9565b945050505080600101905061066b565b505f610756866101800151865f01518760200151856121d4565b90508281145b9695505050505050565b5f6107946040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5f6107a28460a00151612242565b90506107ac614e43565b6107b4614e62565b5f6107e48760e00151857f00000000000000000000000000000000000000000000000000000000000000006122a7565b805160c089015191925061080491610598908460015b6020020151611f68565b855260a08701516108309061081890612337565b825160c08a015161059391906105b6908660016107fa565b6020860152600183526101e0890151610848906123a0565b82526001606086018190525f60808701525b602381116109005761087b610871875f01516123ea565b8760600151611f68565b84826046811061088d5761088d6151b4565b602002015260808601516101808b01516108d09190610598906108b16001866151c8565b602881106108c1576108c16151b4565b60200201518960600151611f68565b8660800181815250506108eb86606001518960800151611f68565b60608701526108f9816151db565b905061085a565b505f61090e602360016151a1565b90505b6028811161098f5761092961087187602001516123ea565b84826046811061093b5761093b6151b4565b602002015260808601516101808b015161095f9190610598906108b16001866151c8565b86608001818152505061097a86606001518960800151611f68565b6060870152610988816151db565b9050610911565b50606088015182600160200201526080880151826002602002015260a0880151826003602002015260c0880151826004602002015260e0880151826005602002015261010088015182600660200201526101208801518260076020020152610140880151826008602002015261016088015182600960200201526101a088015182600a602002015261018088015182600b60200201526101c088015182600c60200201526101e088015182600d602002015261020088015182600e602002015261022088015182600f60200201526102408801518260106020020152610260880151826011602002015261028088015182601260200201526102a088015182601360200201526102c088015182601460200201526102e08801518260156020020152610300880151826016602002015261032088015182601760200201526103408801518260186020020152610360880151826019602002015261038088015182601a60200201526103a088015182601b60200201526060890151610b13906123a0565b6103808301526080890151610b27906123a0565b6103a083015260a0890151610b3b906123a0565b6103c083015260c0890151610b4f906123a0565b6103e083015260e0890151610b63906123a0565b610400830152610140890151610b78906123a0565b610420830152610100890151610b8d906123a0565b610440830152610120890151610ba2906123a0565b6104608301526060890151610bb6906123a0565b6104808301526080890151610bca906123a0565b6104a083015260a0890151610bde906123a0565b6104c083015260c0890151610bf2906123a0565b6104e083015260e0890151610c06906123a0565b6105008301525f604086015260c0870151610c2090612402565b60608601525f5b610c336001601c6151c8565b811015610d78575f610c6660017f00000000000000000000000000000000000000000000000000000000000000006151c8565b82101590505f81610ccf576060880151610c969085610c868660026151a1565b601d81106107fa576107fa6151b4565b9050610ca1816123ea565b8684610caf602860016151a1565b610cb991906151a1565b60468110610cc957610cc96151b4565b60200201525b610cfe8860400151610598838f6101c00151876001610cee91906151a1565b601c81106107fa576107fa6151b4565b6040890152606088015160c08b0151610d179190611f68565b60608901526101a08c0151610d419084601b8110610d3757610d376151b4565b60200201516123a0565b8584610d4f602860016151a1565b610d5991906151a1565b60468110610d6957610d696151b4565b60200201525050600101610c27565b505f610db4886060015187608001518c6101c00151887f000000000000000000000000000000000000000000000000000000000000000061240d565b6040870151909150610dcb9061059883855f6107fa565b604087018190526101c08b01515160c08a0151610df9929161059891610df19190611f68565b8560016107fa565b6040808801919091528051808201909152600181526002602082015283610e22601c60286151a1565b60468110610e3257610e326151b4565b6020020152604086015184610e49601c60286151a1565b60468110610e5957610e596151b4565b60200201526102008a01515f90610e6f906123a0565b90508084610e7f601c60286151a1565b610e8a9060016151a1565b60468110610e9a57610e9a6151b4565b602002015260e089015185610eb1601c60286151a1565b610ebc9060016151a1565b60468110610ecc57610ecc6151b4565b60200201525f610edc8587612507565b90505f610ee8836125d8565b9050610ef4828261264f565b9d9c50505050505050505050505050565b610f0d61483c565b50604080516103c0810182526302000000815260196020808301919091526103dc82840152825180840184527f2378ceae0a35f62b96a226d6bb080ddad1f63bb2ba4e32afe28886d7293c051a81527f109d29a0ed7d03fc06b466ac806a1fc51040190656c694a32c4cc4b5e4699716818301526060830152825180840184527f1c2bf2f103170e83499b836a67286aa099019315b2eab18c5197c726e56cf6fb81527f2c622f6a1fa315d3dcbe22c320e217e64beee623e670669bb0235eee7afde96f818301526080830152825180840184527f1de25b8025015be9e2a7df54dfa352ad5a45e954f53a3d8af6973b93a9a76ac281527f06dcc68804907b2f6c5f2a1a9e85ee6da4cd1cf4497e6cf201562a4956f067bb8183015260a0830152825180840184527f10fb205d33672c415d218606d08fccb04dca56ed79fc86fd71cdd67dc202d87681527f1af8842173c514e28dd628188a28c2ba99499a80d0668d864199e8bebd14a9128183015260c0830152825180840184527f0a103bf9ab0c1aef78b996b9a4454cd90ded22ddf0be2a97cd540bfa66be3c5e81527f10bd5c07cf7f2c8958bd58e7199fad8f5d93803264d9c8f2508d321fd71f4e468183015260e0830152825180840184527f095c2cbe5924342767a0076f12a9ff73f434c10bea7433d0dfc8047f69da7b3a81527f208083c0beadec324fae19dda9bafa9e89efd0df806e98369d6a5111fefe298881830152610100830152825180840184527f035d97a928b728d4f4d460c4bdcf11ea8c8bd382f233fe512c394b0b6da9152481527f26961d0bf338d36d2b5ec2f59675073ad262b9bacae3bc100ea54158e763f64781830152610120830152825180840184527f2e91320bf6a24c6a4c9ca1effb52baa201e749de022b8e6eb133d0ea4febd21d81527f01e7b8aad001e6df5c938fd22c1867b13229912974b68ab5c2208c3a8641510581830152610140830152825180840184527f0ef3865dfc018a6798f51e4019d5cbcacef3c689b3efa71c1cca3c124a64b44581527f2ef9437fd0ab64bfadf16a146982a9eacd11011c61ff3abbc6f7ef726b662d2b81830152610160830152825180840184527f2cdad4c0493194be5d7fef051c21a90cdf4e7ec249fd2d91ca0e736680cecf0981527f15e34718d9af0bc76b5e7f76944fe7fabfa34f398ff2e21f3b2803836ee512cc81830152610180830152825180840184527f25230c6ec90e36eaed1d4e29ab95012d412ba7246b4ff8d305c641747c43a99a81527f218824da4a96a25aefaec48f2b7b8092967a1c3a388fdec36f750586a6615e18818301526101a0830152825180840184527f2ccdb65df197c6e42cce72bc8037d3f12f4edbd55dc807075dd95670a5d2c69281527f152a3b7ea603664fefb2484eed5dd3294692d2f8332715dd0a24cd15c2eac2f4818301526101c0830152825180840184527f232b14f4a92d5b6f2de9f34d0b0e2db98b4607139ae8fdb664d9386b59124f6981527f24bbe2a5fae8d4d5ae538bf6ffe582179ec1d8e0eac2092418627644a5e03fc6818301526101e0830152825180840184527f01c72251e930f2eef26525fd57bc7a9bd8f21a32aa6e7a28dccfe49d102ce2f881527f0e497a771a24b778d42b893c61e868489e033b1387c78b3d6ec4a7e3dd3a5f1781830152610200830152825180840184527f2ee9d8565a74f34c6ab72f20ebe109b9e35ab5a0ae2efc094b66ef73e7d1b49581527f1df97e3308b9daa3153167dbb0f4fa9eba43e2d8adfebc5743a195c620c667ad81830152610220830152825180840184527f2ac7f8ada41802c2ca8ff6c3252c2fcf9d261c1582dca500ee3dce06f47e96af81527f158572badfb9bf645778c56d9e872691359ce4e99be71d3b95ccee1471dca25b81830152610240830152825180840184527f085d25772c74d981f81eef7f597ee5715378c3b247225712f812ba446b1e838c81527f18ddf9886af41a46ba598fc961b409fc383ad18974128eac7e473bd8d9c2375181830152610260830152825180840184527f1abd5df832fd5db09df317f2255ec6a239c11c6fdb95c4f9b9b536f6301cb9cb81527f290bfdd8ad5f4dabac02a9659aa81d121d62ab50d9231cf7e6a1683a071bf74e81830152610280830152825180840184527f0411027793df954052331a722759ce7d8709c5cd1d2f5059f26aeacb5b8b5a2a81527f14b6023824b3d5e217c418a8fa3eebad21f045ef08d9c904750f4491f194adcd818301526102a0830152825180840184527f19b98ff603cd6670796b3bfdf00a22c27ed5979b0e7607a19b980f1e06fddd0081527f262eabe1c11a96289a217e562f6b03e61a2cc585a9a0b41312ad68553b272c68818301526102c0830152825180840184527f28717d9305bb25c258e586558245a245e6ca8925046bd567ee63dc3ed25ae9c981527f0de20afd928e42b0e537de844338919dfc11cfa468632228c667c7f077ab7b57818301526102e0830152825180840184527f0d1c51a0944e73b5bf5059109cfc7756b18ab597ee97fcdceb68e08e7a9325ec81527f2d0ebb65c43bb88f0e0af105cb368e35a8117262fa463c5e4a91e60a63285d5881830152610300830152825180840184527f237fc3d6ca839bf8fe66beb52f778994d8d05f3496301df3cb1030649802eb1881527f1013ad0339d32e695efdc9e28675f47f332bda5954966f00469214f4ee763b8481830152610320830152825180840184527f0c124a2788b4e0e45ebc1003affc7b699ea00567da3fa1f4bef7f9f97698340481527f0655bd829b537acf9fdc36831274395bdd5d3c181d2e84ddd3dfa1192c5f518481830152610340830152825180840184527f2664e1b3d5bd93796c3e968511ad456c3b10db55de4e939e1a8eb6279d99ea9a81527f2a8a81f4857a08db4de35ca43cc4e145c8719ce30616be286b5a565e4ee99e9c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f167b2a1b3d21b3a9ff0c0493cd2134750f68bfbd035f0e1be656e444990a90ea83527f065f27d166341dba07bdec35aaada3ed94f114dd97b04d179a961b6185e76b87908301526103a081019190915290565b61181460405180608001604052805f81526020015f81526020015f81526020015f81525090565b6080821461185f5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064015b60405180910390fd5b60408051608081019091528061187860205f868861515d565b61188191615184565b815260209081019061189790604090868861515d565b6118a091615184565b81526020016118b360606040868861515d565b6118bc91615184565b81526020016118cf60806060868861515d565b6118d891615184565b90529392505050565b5f602082146119295760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b6044820152606401611856565b61193661058e8385615184565b9392505050565b6119706040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61197d87878787612853565b60408601919091526020850191909152908352925061199c8388612c86565b60808501919091526060840191909152919791965090945050505050565b6119c2614e9b565b5f6119cb614eba565b8481526101408401805151602080840191909152815181015160408085019190915282518101516060808601919091529251830151608085015260e080880180515160a0870152805184015160c087015280518301519186019190915251909201516101008401529051611a6091611a45918491016151f3565b60405160208183030381529060405280519060200120611f4a565b9150611a6b82612d59565b6020850152835260015b611a816002601961523b565b811015611b0157611a9e83604051602001611a4591815260200190565b9250611aa983612d59565b85611ab5846002615146565b60198110611ac557611ac56151b4565b6020020186611ad5856002615146565b611ae09060016151a1565b60198110611af057611af06151b4565b602002019190915252600101611a75565b50611b1882604051602001611a4591815260200190565b91505f611b2483612d59565b85611b31600160196151c8565b60198110611b4157611b416151b4565b60200201919091525050509250929050565b611b5b614ed9565b5f805b601c811015611bad57611b7d84604051602001611a4591815260200190565b93505f611b8985612d59565b8584601c8110611b9b57611b9b6151b4565b60200201919091525050600101611b5e565b5090929050565b611bbc614ed9565b5f805b601c811015611c7f57611bd0614eba565b8481525f5b6008811015611c395786610160015183601c8110611bf557611bf56151b4565b60200201518160088110611c0b57611c0b6151b4565b602002015182611c1c8360016151a1565b60098110611c2c57611c2c6151b4565b6020020152600101611bd5565b50611c4e81604051602001611a4591906151f3565b94505f611c5a86612d59565b8685601c8110611c6c57611c6c6151b4565b6020020191909152505050600101611bbf565b50909391925050565b5f5f611c92614ef8565b8381525f5b6028811015611ce5578561018001518160288110611cb757611cb76151b4565b602002015182611cc88360016151a1565b60298110611cd857611cd86151b4565b6020020152600101611c97565b50611cfa81604051602001611a45919061524e565b91505f611d0683612d59565b5096929550919350505050565b5f5f611d1d614f17565b8381525f5b611d2e6001601c6151c8565b811015611e6c57856101a0015181601b8110611d4c57611d4c6151b4565b60200201515182611d5e836004615146565b611d699060016151a1565b606d8110611d7957611d796151b4565b60200201526101a086015181601b8110611d9557611d956151b4565b60200201516020015182826004611dac9190615146565b611db79060026151a1565b606d8110611dc757611dc76151b4565b60200201526101a086015181601b8110611de357611de36151b4565b60200201516040015182611df8836004615146565b611e039060036151a1565b606d8110611e1357611e136151b4565b60200201526101a086015181601b8110611e2f57611e2f6151b4565b60200201516060015182611e44836004615146565b611e4f9060046151a1565b606d8110611e5f57611e5f6151b4565b6020020152600101611d22565b50611cfa81604051602001611a459190615282565b5f5f611e8b614f36565b8381525f5b601c811015611ede57856101c0015181601c8110611eb057611eb06151b4565b602002015182611ec18360016151a1565b601d8110611ed157611ed16151b4565b6020020152600101611e90565b50611cfa81604051602001611a4591906152b6565b5f5f611efd614f55565b8381526101e085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611cfa91611a45918491016152ea565b5f611f625f51602061540c5f395f51905f528361531d565b92915050565b5f5f51602061540c5f395f51905f528284099392505050565b5f5f51602061540c5f395f51905f528284089392505050565b5f5f51602061540c5f395f51905f52611fc0835f51602061540c5f395f51905f526151c8565b84089392505050565b5f6119368361059384612337565b81515f908190611fef908560015b6020020151611f81565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156120e1576120d7826105938784611f9a565b91506001016120c0565b506120ea614f73565b5f5b600881101561214b575f848260088110612108576121086151b4565b6020020151905061211d816105938985611f9a565b905061212881612337565b90508083836008811061213d5761213d6151b4565b6020020152506001016120ec565b505f5b600881101561219e575f87826008811061216a5761216a6151b4565b60200201519050612187818484600881106107fa576107fa6151b4565b90506121938682611f81565b95505060010161214e565b5061075c8483611f68565b5f5f6121bf600161059885610593896001611f9a565b90506121cb8482611f68565b95945050505050565b5f6121dd614f92565b6121e8868285612d92565b6121f486868386612f3e565b61220086868386613126565b61220b868285613322565b61221686828561350a565b6122228686838661384d565b61222d8682856140e7565b6122388682856144b2565b61075c81856147a7565b61224a614ed9565b81815260015b601c8110156122a157612282826122686001846151c8565b601c8110612278576122786151b4565b6020020151612402565b8282601c8110612294576122946151b4565b6020020152600101612250565b50919050565b6122af614f36565b836122c86122c382865f6020020151611f9a565b612337565b82525f5b601c81101561232e575f6122e18560016151a1565b8211612303576123006122c3848885601c8110611fe557611fe56151b4565b90505b80846123108460016151a1565b601d8110612320576123206151b4565b6020020152506001016122cc565b50509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061540c5f395f51905f520360808201525f51602061540c5f395f51905f5260a082015260205f60c08360055afa905080612395575f5ffd5b50505f519392505050565b604080518082019091525f8082526020820152604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f611f62825f51602061540c5f395f51905f526151c8565b5f611f628283611f68565b5f601c5b80156124fc575f846124246001846151c8565b601c8110612434576124346151b4565b602002015190505f886124486001856151c8565b601c8110612458576124586151b4565b602002015190505f8761246c6001866151c8565b601c811061247c5761247c6151b4565b602002015190505f6124b761249b612494868d611f68565b6002611f68565b6105b6846105936124b18961059360018b611f9a565b88611f9a565b90506124d8816105936122c36124d28861059360018a611f9a565b87611f81565b9050868511806124e657819a505b5050505050806124f590615330565b9050612411565b509395945050505050565b604080518082019091525f80825260208201525f612527601c60286151a1565b6125329060026151a1565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125c05760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612567565b50805184526020810151602085015250505092915050565b604080518082019091525f80825260208201527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4782602001517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761263c91906151c8565b612646919061531d565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516127e59190615345565b5f60405180830381855afa9150503d805f811461281d576040519150601f19603f3d011682016040523d82523d5f602084013e612822565b606091505b50915091505f8180602001905181019061283c919061535b565b90508280156128485750805b979650505050505050565b5f808080806128638660036151a1565b61286e90600c6151a1565b67ffffffffffffffff8111156128865761288661537a565b6040519080825280602002602001820160405280156128af578160200160208202803683370190505b509050885f01515f1b815f815181106128ca576128ca6151b4565b60200260200101818152505088602001515f1b816001815181106128f0576128f06151b4565b60200260200101818152505088604001515f1b81600281518110612916576129166151b4565b60209081029190910101525f5b868110156129755788888281811061293d5761293d6151b4565b905060200201358282600361295291906151a1565b81518110612962576129626151b4565b6020908102919091010152600101612923565b50606089015151816129888860036151a1565b81518110612998576129986151b4565b60209081029190910181019190915260608a01510151816129ba8860036151a1565b6129c59060016151a1565b815181106129d5576129d56151b4565b6020908102919091010152606089015160400151816129f58860036151a1565b612a009060026151a1565b81518110612a1057612a106151b4565b60209081029190910101526060808a0151015181612a2f8860036151a1565b612a3a9060036151a1565b81518110612a4a57612a4a6151b4565b602090810291909101015260808901515181612a678860036151a1565b612a729060046151a1565b81518110612a8257612a826151b4565b60209081029190910181019190915260808a0151015181612aa48860036151a1565b612aaf9060056151a1565b81518110612abf57612abf6151b4565b602090810291909101015260808901516040015181612adf8860036151a1565b612aea9060066151a1565b81518110612afa57612afa6151b4565b602090810291909101015260808901516060015181612b1a8860036151a1565b612b259060076151a1565b81518110612b3557612b356151b4565b602090810291909101015260a08901515181612b528860036151a1565b612b5d9060086151a1565b81518110612b6d57612b6d6151b4565b60209081029190910181019190915260a08a0151015181612b8f8860036151a1565b612b9a9060096151a1565b81518110612baa57612baa6151b4565b602090810291909101015260a08901516040015181612bca8860036151a1565b612bd590600a6151a1565b81518110612be557612be56151b4565b602090810291909101015260a08901516060015181612c058860036151a1565b612c1090600b6151a1565b81518110612c2057612c206151b4565b602002602001018181525050612c4081604051602001611a45919061538e565b9150612c4b82612d59565b6040805160208101869052929750909550612c669101611a45565b91505f612c7283612d59565b50959a949950949750909550919350505050565b5f5f5f612c91614fb1565b8581526101008581018051516020808501919091528151810151604080860191909152825181015160608087019190915292518301516080860152610120808a0180515160a0880152805184015160c080890191909152815184015160e089015290518501519587019590955293890180515194860194909452835182015161014086015283518101516101608601529251909101516101808401529051612d3f91611a45918491016153c3565b9150612d4a82612d59565b90979096509194509092505050565b5f80826fffffffffffffffffffffffffffffffff8116608082901c612d7d82611f4a565b9450612d8881611f4a565b9350505050915091565b5f612d9e84600761480c565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612dff612df9612dd3856003611f9a565b610593612dee612de38b5f61480c565b6105938c601c61480c565b6105938b601b61480c565b83611f68565b9050612e80612e75612e5c612e43612e2a85610598612e1f8d600261480c565b6105938e601b61480c565b610598612e388c600361480c565b6105938d601c61480c565b610598612e518b600461480c565b6105938c601d61480c565b610598612e6a8a600561480c565b6105938b601e61480c565b61059888600161480c565b9050612e9f81610598612e94866001611f9a565b6105938a602661480c565b9050612eab8184611f68565b9050612eb78185611f68565b8552505f9050612ef1612ee7612edc612ed188601b61480c565b61059889601e61480c565b6105b688602361480c565b610598875f61480c565b9050612f0281610593846002611f9a565b9050612f1381610593846001611f9a565b9050612f1f8183611f68565b9050612f2b8184611f68565b9050808460015b60200201525050505050565b5f5f5f612f74612f6a612f5289601b61480c565b610598612f608b601161480c565b8a60600151611f68565b8760800151611f81565b9050612fad81610593612fa3612f8b8b601c61480c565b610598612f998d601261480c565b8c60600151611f68565b8960800151611f81565b9050612fd281610593612fa3612fc48b601d61480c565b610598612f998d601361480c565b9050612ff781610593612fa3612fe98b601e61480c565b610598612f998d601461480c565b92505f905061301b612f6a61300d89601b61480c565b610598612f608b600d61480c565b905061304081610593612fa36130328b601c61480c565b610598612f998d600e61480c565b905061306581610593612fa36130578b601d61480c565b610598612f998d600f61480c565b905061308a81610593612fa361307c8b601e61480c565b610598612f998d601061480c565b91505f90506130b16130ab6130a089601f61480c565b6105988a601961480c565b84611f68565b90506130e6816105b66130e06130c88b602761480c565b6105986130d68d601a61480c565b8c60a00151611f68565b85611f68565b90506130f28185611f68565b6040860152505f6131156130e061310a89601a61480c565b6105938a602761480c565b606090950194909452505050505050565b5f5f61318461316c61315461313f612fa38a601561480c565b61059861314d8b601661480c565b8a51611f68565b6105986131628a601761480c565b8960200151611f68565b61059861317a89601861480c565b8860400151611f68565b91505f6131bb6131a261319889601b61480c565b8860800151611f81565b6105986131b08a600361480c565b6105938b602361480c565b90505f6131e46131cc89601c61480c565b6105986131d98b5f61480c565b6105938c602461480c565b90505f61320e6131f58a601d61480c565b6105986132038c600161480c565b6105938d602561480c565b905061324d61323561322785610598868d5f0151611f68565b610598848c60200151611f68565b6105986132438c600461480c565b8b60400151611f68565b93505050505f6132616130ab88602061480c565b90505f6132726130ab89602061480c565b90505f6132aa6132916132868b602261480c565b6105988c600661480c565b6105b661329f8c602261480c565b6105938d600661480c565b90505f6132ce6132c86132bd8789611f68565b6105938d602061480c565b83611f9a565b90506132da8188611f68565b90505f6133026132f46132ee8d600661480c565b87611f68565b6105b66132ee8e602161480c565b60808a018390529050808960055b60200201525050505050505050505050565b5f61332e5f6001611f9a565b90505f61333c5f6002611f9a565b90505f61334a5f6003611f9a565b90505f61336661335b88601c61480c565b6105b689601b61480c565b90505f61338261337789601d61480c565b6105b68a601c61480c565b90505f61339e6133938a601e61480c565b6105b68b601d61480c565b90505f6133ba6133af8b602361480c565b6105b68c601e61480c565b9050836133cb81610593818b611f81565b90506133db81610593878a611f81565b90506133eb816105938789611f81565b90506133fc816105938d600861480c565b9050613408818a611f68565b60c08b0152508261341d81610593818b611f81565b905061342d81610593868a611f81565b905061343d816105938689611f81565b905061344e816105938d600861480c565b905061345a818a611f68565b60e08b0152508161346f81610593818b611f81565b905061347f81610593858a611f81565b905061348f816105938589611f81565b90506134a0816105938d600861480c565b90506134ac818a611f68565b6101008b015250806134c281610593818b611f81565b90506134d281610593848a611f81565b90506134e2816105938489611f81565b90506134f3816105938d600861480c565b90506134ff818a611f68565b9050808a6009613310565b6135436040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61354e84601c61480c565b815261355b84601d61480c565b602082015261356b84602361480c565b604082015261357b84602661480c565b606082015261358b84602561480c565b608082015261359b84602461480c565b60a08201525f6135ac85600261480c565b90505f6135b9865f61480c565b90505f6135cd8460400151855f0151611f9a565b90505f6135e285602001518660200151611f68565b606086015190915086905f906135f89080611f68565b90505f61361661361089602001518a60600151611f68565b88611f68565b90505f61363561362e8a60a001518b60400151611f81565b8a51611f81565b90506136446132ee8288611f68565b905061366561365f6136596124b18487611f9a565b84611f81565b83611f81565b905061368d6136826136778387611f68565b6105938f600961480c565b61059360018a611f9a565b6101408c015250505050602085015160808601515f916136ac91611f81565b90505f6136ca6136c0886060015188611f68565b8860200151611f9a565b90505f6136ee6136da8487611f68565b6105986130e08b60a001518c5f0151611f9a565b905061371661370b613700838c611f68565b6105938e600961480c565b610593600189611f9a565b6101608b0152505f91506137379050613730836011611f81565b8751611f68565b90505f6137448384611f81565b90506137508182611f81565b90505f61375e836009611f68565b90506137876137816130ab61377a8b60a001518c5f0151611f81565b8b51611f81565b82611f9a565b60c089018190525f906137a29061361090613677908d611f68565b90506137b58b600a602002015182611f81565b6101408c0152505086515f92506137dc9150613730906137d59080611f81565b8851611f81565b90505f61381c6137f7836105938a5f01518b60a00151611f9a565b60208901516105b69061380a9080611f81565b6105938b602001518c60800151611f81565b905061383989600b6020020151610598613610613677858d611f68565b89600b602002015250505050505050505050565b6138e1604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6139166138fd6138f287601b61480c565b61059388602461480c565b61059861390b88602361480c565b61059389601c61480c565b815261395b61395061393761392c88601b61480c565b61059389601e61480c565b61059861394589601c61480c565b6105938a601d61480c565b6105b687602561480c565b6040820181905261397090600160441b611f68565b60408201819052613986906105b687602661480c565b6040820181905281516139999190611f81565b604082018190526139af9061059387600561480c565b604082015280516139c490600160441b611f68565b8082526139e4906105986139d988602361480c565b61059389602461480c565b80825260208201819052613a00906105b6612ed188601d61480c565b60208201819052613a169061059387600461480c565b6020820152805160608201819052613a339061059887601e61480c565b60608201819052613a57906105b6613a4c88602561480c565b61059889602661480c565b60608201819052613a6c90610593875f61480c565b8160600181815250505f613a95613a8b83602001518460400151611f81565b8360600151611f81565b9050613aa68161059388600361480c565b9050613abe613ab687602461480c565b614000611f68565b60808301819052613ad49061059888602361480c565b60808301819052613ae790614000611f68565b60808301819052613afd9061059888601d61480c565b60808301819052613b1090614000611f68565b60808301819052613b269061059888601c61480c565b60808301819052613b3990614000611f68565b60808301819052613b4f9061059888601b61480c565b60808301819052613b65906105b688601e61480c565b60808301819052613b7b9061059388600561480c565b6080830152613b8e613ab687602561480c565b60a08301819052613ba49061059888602461480c565b60a08301819052613bb790614000611f68565b60a08301819052613bcd9061059888602361480c565b60a08301819052613be090614000611f68565b60a08301819052613bf69061059888601e61480c565b60a08301819052613c0990614000611f68565b60a08301819052613c1f9061059888601d61480c565b60a08301819052613c35906105b688602661480c565b60a08301819052613c4a90610593885f61480c565b60a0830181905260808301515f91613c629190611f81565b9050613c738161059389600461480c565b9050613c8d613c8388601d61480c565b8760400151611f68565b60c08401819052613ca6906105986131628a601c61480c565b60c08401819052613cc690610598613cbf8a601b61480c565b8951611f68565b60c08401819052613cdc9061059889600161480c565b60c0840181905260e08401819052613cf9906105b689601e61480c565b60c0840152613d0c61335b88602361480c565b610140840152613d2b613d2088602661480c565b6105b689601e61480c565b610120840152610140830151613d5090613d459080611f68565b846101400151611f9a565b610280840152610140830151613d9290613d8790613d809061059360015f51602061540c5f395f51905f526151c8565b6001611f81565b846101200151611f68565b6101608401819052613dc990613dbb90610593613db08b600261480c565b6105938c600361480c565b6105936132ee8a600a61480c565b6101a0860152610280830151613deb90613dbb90610593613db08b600261480c565b6101c086015260c0830151613e1390610593613e088a600261480c565b6105938b600361480c565b6101e08401525f613e32613e2889601e61480c565b8560e00151611f9a565b9050613e416137818283611f68565b6101a0850152613e5561317a89602561480c565b6101008501819052613e7990610598613e6f8b602461480c565b8a60200151611f68565b6101008501819052613e939061059861314d8b602361480c565b610100850152613eb2613ea789602661480c565b856101000151611f9a565b6101008501525f613ec76133938a602561480c565b9050613f1b613ef5612df9613d8088610140015160015f51602061540c5f395f51905f5261059391906151c8565b610593613d8088610100015160015f51602061540c5f395f51905f5261059391906151c8565b610180860152610100850151613f4090613f359080611f68565b866101000151611f9a565b6101c0860152610180850151613f7390613f5f906105938c600761480c565b610593613f6d8c600a61480c565b89611f68565b6101e0880152610280850151613f9290613f5f906105938c600761480c565b6102008801526101c0850151613fb190613f5f906105938c600761480c565b6102208801526101a0850151613fcc906105938b600761480c565b610200860152613feb613fe08a602461480c565b6105b68b601c61480c565b61022086015261014085015161402a906133939061401f90613d809061059360015f51602061540c5f395f51905f526151c8565b876102200151611f68565b61024086018190526101e0860151610260870181905261406191610598906105936140568e600561480c565b6105938f600261480c565b610260860181905260c08601516140849190610598906105936140568e5f61480c565b610260860181905261020086015161409c9190611f81565b61026086018190526140b2906136599086611f81565b6102a086018190526140cc90610593613f6d8c600a61480c565b6102a0860181905287600c6020020152505050505050505050565b61415d6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61417661416b85601b61480c565b61059886600261480c565b815261419161418685601c61480c565b61059886600361480c565b60208201526141af6141a485601d61480c565b61059886600461480c565b60408201526141cd6141c285601e61480c565b61059886600561480c565b606082015280516141ff906141f8906141f1906141ea9080611f68565b8451611f68565b8351611f68565b8251611f68565b6080820152602081015161423d90614233906142299061421f9080611f68565b8460200151611f68565b8360200151611f68565b8260200151611f68565b60a0820152604081015161427b90614271906142679061425d9080611f68565b8460400151611f68565b8360400151611f68565b8260400151611f68565b60c082015260608101516142b9906142af906142a59061429b9080611f68565b8460600151611f68565b8360600151611f68565b8260600151611f68565b60e0820152608081015160a08201516142d29190611f81565b61010082015260c081015160e08201516142ec9190611f81565b61012082015260a0810151614310906143059080611f81565b826101200151611f81565b61014082015260e0810151614334906143299080611f81565b826101000151611f81565b61016082015261012081015161434a9080611f81565b6101e0820181905261436b906143609080611f81565b826101600151611f81565b6101e08201526101008101516143819080611f81565b6101a082018190526143a2906143979080611f81565b826101400151611f81565b6101a082018190526101608201516143b991611f81565b6101808201526101408101516101e08201516143d59190611f81565b6101c08201526143e9612df985600b61480c565b61020082018190526102408401516101808301516144149261059891610593906105b68a602361480c565b83601260200201526144448360136020020151610598836102000151610593856101a001516105b68a602461480c565b83601360200201526144748360146020020151610598836102000151610593856101c001516105b68a602561480c565b83601460200201526144a48360156020020151610598836102000151610593856101e001516105b68a602661480c565b836015602002015250505050565b6145046040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145397f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611f4a565b81526020016145677f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611f4a565b81526020016145947e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611f4a565b81526020016145c27f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611f4a565b905290506145df6145d486601b61480c565b61059887600261480c565b61012083018190526146139061460890613d87906145fd9080611f68565b856101200151611f68565b836101200151611f68565b825261462085601c61480c565b602083015261463085601d61480c565b604083015261464085601e61480c565b60608301528151602083015161466891613a8b9161465e9190611f81565b8460400151611f81565b608083015261467b6130ab86600c61480c565b610140830152815161469c9061469290835f6107fa565b8360800151611f81565b60a08301526146c884601660200201516105988461014001516105938660a001516105b68b602361480c565b6102c085015260208201516146e390614692908360016107fa565b60c083015261470f84601760200201516105988461014001516105938660c001516105b68b602461480c565b6102e0850152604082015161472a90614692908360026107fa565b60e083015261475684601860200201516105988461014001516105938660e001516105b68b602561480c565b610300850152606082015161477190614692908360036107fa565b61010083015261479f84601960200201516105988461014001516105938661010001516105b68b602661480c565b846019612f32565b5f6147b3818481611fe5565b905060015b601a811015614805576147fb826105988684601a81106147da576147da6151b4565b6020020151866147eb6001876151c8565b601981106107fa576107fa6151b4565b91506001016147b8565b5092915050565b5f82826027811115614820576148206153f7565b60288110614830576148306151b4565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161487560405180604001604052805f81526020015f81525090565b815260200161489560405180604001604052805f81526020015f81525090565b81526020016148b560405180604001604052805f81526020015f81525090565b81526020016148d560405180604001604052805f81526020015f81525090565b81526020016148f560405180604001604052805f81526020015f81525090565b815260200161491560405180604001604052805f81526020015f81525090565b815260200161493560405180604001604052805f81526020015f81525090565b815260200161495560405180604001604052805f81526020015f81525090565b815260200161497560405180604001604052805f81526020015f81525090565b815260200161499560405180604001604052805f81526020015f81525090565b81526020016149b560405180604001604052805f81526020015f81525090565b81526020016149d560405180604001604052805f81526020015f81525090565b81526020016149f560405180604001604052805f81526020015f81525090565b8152602001614a1560405180604001604052805f81526020015f81525090565b8152602001614a3560405180604001604052805f81526020015f81525090565b8152602001614a5560405180604001604052805f81526020015f81525090565b8152602001614a7560405180604001604052805f81526020015f81525090565b8152602001614a9560405180604001604052805f81526020015f81525090565b8152602001614ab560405180604001604052805f81526020015f81525090565b8152602001614ad560405180604001604052805f81526020015f81525090565b8152602001614af560405180604001604052805f81526020015f81525090565b8152602001614b1560405180604001604052805f81526020015f81525090565b8152602001614b3560405180604001604052805f81526020015f81525090565b8152602001614b5560405180604001604052805f81526020015f81525090565b8152602001614b7560405180604001604052805f81526020015f81525090565b8152602001614b9560405180604001604052805f81526020015f81525090565b8152602001614bb560405180604001604052805f81526020015f81525090565b905290565b6040518061022001604052805f81526020015f81526020015f8152602001614bff60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c2b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c5760405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c8360405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614caf60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cdb60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d0760405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3360405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d40614fd0565b8152602001614d4d614ffe565b8152602001614d5a61501d565b8152602001614d67614ed9565b8152602001614d9360405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614bb560405180608001604052805f81526020015f81526020015f81526020015f81525090565b604051806101000160405280614dfe6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001614e0b614e9b565b8152602001614e18614ed9565b8152602001614e25614ed9565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b604080518082019091525f8082526020820152815260200190600190039081614e725790505090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b604051806101a00160405280600d906020820280368337509192915050565b604051806103800160405280601c905b614fe8614f73565b815260200190600190039081614fe05790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b61505460405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020019060019003908161502d5790505090565b5f5f5f5f6040858703121561507d575f5ffd5b843567ffffffffffffffff811115615093575f5ffd5b8501601f810187136150a3575f5ffd5b803567ffffffffffffffff8111156150b9575f5ffd5b8760208284010111156150ca575f5ffd5b60209182019550935085013567ffffffffffffffff8111156150ea575f5ffd5b8501601f810187136150fa575f5ffd5b803567ffffffffffffffff811115615110575f5ffd5b8760208260051b8401011115615124575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611f6257611f62615132565b5f5f8585111561516b575f5ffd5b83861115615177575f5ffd5b5050820193919092039150565b80356020831015611f62575f19602084900360031b1b1692915050565b80820180821115611f6257611f62615132565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611f6257611f62615132565b5f600182016151ec576151ec615132565b5060010190565b5f8183825b60098110156152175781518352602092830192909101906001016151f8565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261524957615249615227565b500490565b5f8183825b6029811015615272578151835260209283019290910190600101615253565b5050506105208201905092915050565b5f8183825b606d8110156152a6578151835260209283019290910190600101615287565b505050610da08201905092915050565b5f8183825b601d8110156152da5781518352602092830192909101906001016152bb565b5050506103a08201905092915050565b5f8183825b600581101561530e5781518352602092830192909101906001016152ef565b50505060a08201905092915050565b5f8261532b5761532b615227565b500690565b5f8161533e5761533e615132565b505f190190565b5f82518060208501845e5f920191825250919050565b5f6020828403121561536b575f5ffd5b81518015158114611936575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156153b857815184526020938401939091019060010161539a565b509195945050505050565b5f8183825b600d8110156153e75781518352602092830192909101906001016153c8565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220ee2249dee80348a1fc7d41f1cb707dcef01aa6d65ad37ba294c7e89235101de564736f6c634300081b0033";
5
5
  /**
6
6
  * HonkVerifier link references.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../generated/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,y40CAAy40C,CAAC;AAC360C;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAc,CAAC"}
1
+ {"version":3,"file":"HonkVerifierBytecode.d.ts","sourceRoot":"","sources":["../generated/HonkVerifierBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,640CAA640C,CAAC;AAC/60C;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAc,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * HonkVerifier bytecode.
3
3
  */
4
- export const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a0526103dc60c05260805160a05160c05161545f6100625f395f6105c101525f818161066d015281816107c001528181610c420152610d9001525f61056a015261545f5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b366004615068565b610054565b604051901515815260200160405180910390f35b5f6100626101bb6020615144565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a610195565b90505f61009787876101aa565b604083015190915084146100be5760405163fa06659360e01b815260040160405180910390fd5b5f6100cf82878786604001516104a9565b90506101208686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508451606081015160809091015160408801519193509150610554565b815160a001525f6101318383610665565b905080610151576040516313f8744360e31b815260040160405180910390fd5b5f61015d848685610766565b90508061017d576040516352ec174560e11b815260040160405180910390fd5b8180156101875750805b9a9950505050505050505050565b61019d61483a565b6101a5610f05565b905090565b6101b2614bb8565b6101bf60205f848661515b565b6101c891615182565b81526101d860406020848661515b565b6101e191615182565b60208201526101f460606040848661515b565b6101fd91615182565b604082015261021861021360e06060858761515b565b6117eb565b606082015261022f61021361016060e0858761515b565b60808201526102476102136101e0610160858761515b565b60a082015261025f6102136102606101e0858761515b565b6101008201526102786102136102e0610260858761515b565b6101208201526102916102136103606102e0858761515b565b60c08201526102a96102136103e0610360858761515b565b6101408201526102c26102136104606103e0858761515b565b60e08201526104605f5b601c811015610359575f5b6008811015610350576103038684876102f182602061519f565b926102fe9392919061515b565b6118df565b84610160015183601c811061031a5761031a6151b2565b60200201518260088110610330576103306151b2565b602002018181525050602083610346919061519f565b92506001016102d7565b506001016102cc565b505f5b60288110156103ad576103768583866102f182602061519f565b836101800151826028811061038d5761038d6151b2565b6020020181815250506020826103a3919061519f565b915060010161035c565b505f5b6103bc6001601c6151c6565b811015610412576103e18583866103d482608061519f565b926102139392919061515b565b836101a0015182601b81106103f8576103f86151b2565b602002015261040860808361519f565b91506001016103b0565b505f5b601c8110156104665761042f8583866102f182602061519f565b836101c0015182601c8110610446576104466151b2565b60200201818152505060208261045c919061519f565b9150600101610415565b506104788482856103d482608061519f565b6101e083015261048981608061519f565b905061049c8482856103d482608061519f565b6102008301525092915050565b6104b1614dbd565b5f6104bf868686868561193b565b90835290506104ce81876119b8565b602084019190915290506104e181611b51565b604084019190915290506104f58682611bb2565b606084019190915290506105098682611c86565b6080840191909152905061051d8682611d11565b60a084019190915290506105318682611e7f565b60c084019190915290506105458682611ef1565b5060e083015250949350505050565b5f6001808261059d866105988961059361058e8a7f000000000000000000000000000000000000000000000000000000000000000061519f565b611f48565b611f66565b611f7f565b90505f6105bb876105b68a61059361058e8b600161519f565b611f98565b90505f5b7f000000000000000000000000000000000000000000000000000000000000000081101561064d575f61060a8b83815181106105fd576105fd6151b2565b6020026020010151611f48565b905061061a866105938684611f7f565b955061062a856105938584611f7f565b9450610636848b611f7f565b9350610642838b611f98565b9250506001016105bf565b506106588484611fc7565b9998505050505050505050565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561073c575f86610160015182601c81106106ab576106ab6151b2565b602002015190505f6106bd8286611fd5565b9050806106dd576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106106f4576106f46151b2565b602002015190506107058382611ff8565b955061072c886040015185601c8110610720576107206151b2565b602002015186836121a7565b945050505080600101905061066b565b505f610756866101800151865f01518760200151856121d2565b90508281145b9695505050505050565b5f6107946040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5f6107a28460a00151612240565b90506107ac614e41565b6107b4614e60565b5f6107e48760e00151857f00000000000000000000000000000000000000000000000000000000000000006122a5565b805160c089015191925061080491610598908460015b6020020151611f66565b855260a08701516108309061081890612335565b825160c08a015161059391906105b6908660016107fa565b6020860152600183526101e08901516108489061239e565b82526001606086018190525f60808701525b602381116109005761087b610871875f01516123e8565b8760600151611f66565b84826046811061088d5761088d6151b2565b602002015260808601516101808b01516108d09190610598906108b16001866151c6565b602881106108c1576108c16151b2565b60200201518960600151611f66565b8660800181815250506108eb86606001518960800151611f66565b60608701526108f9816151d9565b905061085a565b505f61090e6023600161519f565b90505b6028811161098f5761092961087187602001516123e8565b84826046811061093b5761093b6151b2565b602002015260808601516101808b015161095f9190610598906108b16001866151c6565b86608001818152505061097a86606001518960800151611f66565b6060870152610988816151d9565b9050610911565b50606088015182600160200201526080880151826002602002015260a0880151826003602002015260c0880151826004602002015260e0880151826005602002015261010088015182600660200201526101208801518260076020020152610140880151826008602002015261016088015182600960200201526101a088015182600a602002015261018088015182600b60200201526101c088015182600c60200201526101e088015182600d602002015261020088015182600e602002015261022088015182600f60200201526102408801518260106020020152610260880151826011602002015261028088015182601260200201526102a088015182601360200201526102c088015182601460200201526102e08801518260156020020152610300880151826016602002015261032088015182601760200201526103408801518260186020020152610360880151826019602002015261038088015182601a60200201526103a088015182601b60200201526060890151610b139061239e565b6103808301526080890151610b279061239e565b6103a083015260a0890151610b3b9061239e565b6103c083015260c0890151610b4f9061239e565b6103e083015260e0890151610b639061239e565b610400830152610140890151610b789061239e565b610420830152610100890151610b8d9061239e565b610440830152610120890151610ba29061239e565b6104608301526060890151610bb69061239e565b6104808301526080890151610bca9061239e565b6104a083015260a0890151610bde9061239e565b6104c083015260c0890151610bf29061239e565b6104e083015260e0890151610c069061239e565b6105008301525f604086015260c0870151610c2090612400565b60608601525f5b610c336001601c6151c6565b811015610d78575f610c6660017f00000000000000000000000000000000000000000000000000000000000000006151c6565b82101590505f81610ccf576060880151610c969085610c8686600261519f565b601d81106107fa576107fa6151b2565b9050610ca1816123e8565b8684610caf6028600161519f565b610cb9919061519f565b60468110610cc957610cc96151b2565b60200201525b610cfe8860400151610598838f6101c00151876001610cee919061519f565b601c81106107fa576107fa6151b2565b6040890152606088015160c08b0151610d179190611f66565b60608901526101a08c0151610d419084601b8110610d3757610d376151b2565b602002015161239e565b8584610d4f6028600161519f565b610d59919061519f565b60468110610d6957610d696151b2565b60200201525050600101610c27565b505f610db4886060015187608001518c6101c00151887f000000000000000000000000000000000000000000000000000000000000000061240b565b6040870151909150610dcb9061059883855f6107fa565b604087018190526101c08b01515160c08a0151610df9929161059891610df19190611f66565b8560016107fa565b6040808801919091528051808201909152600181526002602082015283610e22601c602861519f565b60468110610e3257610e326151b2565b6020020152604086015184610e49601c602861519f565b60468110610e5957610e596151b2565b60200201526102008a01515f90610e6f9061239e565b90508084610e7f601c602861519f565b610e8a90600161519f565b60468110610e9a57610e9a6151b2565b602002015260e089015185610eb1601c602861519f565b610ebc90600161519f565b60468110610ecc57610ecc6151b2565b60200201525f610edc8587612505565b90505f610ee8836125d6565b9050610ef4828261264d565b9d9c50505050505050505050505050565b610f0d61483a565b50604080516103c0810182526302000000815260196020808301919091526103dc82840152825180840184527f2712c970b74611f732af1b59172fe243b223fcfb9080fca1bedcf1de9e5d042381527f06d0ad929088d18900f2eb8f187709d27b7b0eafea0ab59d080897a492e247b9818301526060830152825180840184527f11a9fa1cbe6efaf637ce4d61041027f97e385c53bb3c57ed106f7cd2235ebce481527f24ced689c9545851656da6534034fa2c1bcb615f4aa07189cabbd4035acdbf18818301526080830152825180840184527f10911426d5759743209ccde685b99ddca7d27a151bc70e9fc61a2cdb993499c881527f0200fa43f4932ee957a66cc4334ba4393d4aeab579c082d5f30ab1c37f9854ef8183015260a0830152825180840184527f081d7f30f863aec973b315f6c10b28d0c760865d0169742f4a5e777c9f80f11c81527f062b5ed1b7e538167765c0d9458aba68dc31e8ad44bb184a9c79151630591f0e8183015260c0830152825180840184527f221360d516e7cf250ed6f7fc2b2d187613891551090706de3ed8c8478ac2fc4d81527f247d199bde13940f72bd1946e990e330062c7176fcc1ee5a5e79ab56701d6a858183015260e0830152825180840184527f29e12f0700c9be2d86be398e92dd50c3a99c2104653a21102d82a6ce30c628e481527f22adf70046c9d01c84621283f9b7b764a334f0b3109114ed8ff990cce23c73ec81830152610100830152825180840184527f035d97a928b728d4f4d460c4bdcf11ea8c8bd382f233fe512c394b0b6da9152481527f26961d0bf338d36d2b5ec2f59675073ad262b9bacae3bc100ea54158e763f64781830152610120830152825180840184527f188463d76d1d1468ff182d81009de7297324b8c6a9164c7efdabb8346c75366781527f0d91169e2de6cb6c6c57227ae7ac321dcb58b68acfa43414da9fb78e5b87202481830152610140830152825180840184527f126d4c55c471fc5a9e10e448b3fc929ed800d8e45b1f5c9e948c6d78245c264881527f1ec54a103ff269568e7eb396c31d2e842b1397d1c2dbaef206206033f4b76b2c81830152610160830152825180840184527f14c96f1f0c0bb844de90c18f9443caea4d3d22aef6beda5018f101928ac6c13c81527f2165932c2f8e86ac8ed6e04b63840c45a387b40ae7ea23f7bc7de1738af886c281830152610180830152825180840184527f275a8178655a17b44c31b394db33096f1b113591ad65bbb59094af81a554542981527f29317a6ead44164885d1cc5cbb165f5e28b080d0b8051eb7abb1711deb80a724818301526101a0830152825180840184527f0a167c1798827971055a7ecb0b67ac4f09fb8c157ac25cc07f67fcf0ecd38c9f81527e8a502361a7c9b0495ea52850e831cb9e2bdb602fc253ecd21a80597f161c98818301526101c0830152825180840184527f17bb1ad26bd346c45cbb10ac80c1b16f7f0278a3a9e4e7900522d1940f9682f581527f1bb7b7e21e31dd59fa7a72d0f9ab201eaa3f8f7befdeffe1a9d5a8d7b836d6c4818301526101e0830152825180840184527e5f8e308c6d9e1c74e61b3a154b3ceadf851fe9077c80b8d29151fb3e6f1f2f81527f1b8b469b9d02e0a30a2ef5ba2fa97b9253ef28005e1bf4fe8dec9fcf23d62a5481830152610200830152825180840184527f2b65c80aea0bb67a1941126cd2fe0c3f1c19bcc783f7879366a6ccceb9f896d481527f287bdf086fefa74bf8c10abea5b5000e9a55287849dfd2907aff898a09b2c22481830152610220830152825180840184527f0f3da7b4cec5d8f5d72b797ca9c8c52215a57dbd22be7c7f8fc7f59a053e2c1f81527f1a1edbe132858e1308f9bda9426887da0d76c47ebfe6ffc790a38ce6942b2ee981830152610240830152825180840184527f26376a4c337a051cacd0be1ef081a8814adf4371d3fbf28e31a9219d7f76e26681527f2d8e534ecdf4dc1ce0b1dd2d2f4921d49e925b37542aa9165245995d3cef42ca81830152610260830152825180840184527f0ff9206792483f2ecb9d0ac9f182f488b7c5b32b38a8464a15847c4338922d9881527f08c1f38c6574b6d953cc2e5f05c806c837a09527838aefb4abddefc90d65af2f81830152610280830152825180840184527f1b52cefe7ea0870c64628ccf700f48d99680a13673e6d6fba9353d7f7f23a96681527f21191880e6ddc0ab10685052c0ca9eb64a1009127d758dd2c5759b34297c5f5c818301526102a0830152825180840184527f1e5bd406135f74dc7c3a17ca8bfe9efd191f1666dc18891889b3fc8938f48cd781527f1a8bde8bd2bd6fe22bf4ebba88994e04f06e19990ee7eb5f578b29cb0543beea818301526102c0830152825180840184527f05d7409210a4e3148d4d8fdf3069e05d1382c4c1c8387cd9351fc220eca271f281527f0bd493a53e52a00bdd9f30f9056341c7e45eee08836939f2f4922911f9dd2dbc818301526102e0830152825180840184527f0d1c51a0944e73b5bf5059109cfc7756b18ab597ee97fcdceb68e08e7a9325ec81527f2d0ebb65c43bb88f0e0af105cb368e35a8117262fa463c5e4a91e60a63285d5881830152610300830152825180840184527f237fc3d6ca839bf8fe66beb52f778994d8d05f3496301df3cb1030649802eb1881527f1013ad0339d32e695efdc9e28675f47f332bda5954966f00469214f4ee763b8481830152610320830152825180840184527f0c124a2788b4e0e45ebc1003affc7b699ea00567da3fa1f4bef7f9f97698340481527f0655bd829b537acf9fdc36831274395bdd5d3c181d2e84ddd3dfa1192c5f518481830152610340830152825180840184527f2664e1b3d5bd93796c3e968511ad456c3b10db55de4e939e1a8eb6279d99ea9a81527f2a8a81f4857a08db4de35ca43cc4e145c8719ce30616be286b5a565e4ee99e9c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f0e8a4cc99082069c86657280d83eb6670d0794a1b2ac664cc22206af5f4b3fe683527f28cf543fe17aab5161e0ebdfb7fe58d6c7a329a5a6a5494f158f4a592ae1c8d4908301526103a081019190915290565b61181260405180608001604052805f81526020015f81526020015f81526020015f81525090565b6080821461185d5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064015b60405180910390fd5b60408051608081019091528061187660205f868861515b565b61187f91615182565b815260209081019061189590604090868861515b565b61189e91615182565b81526020016118b160606040868861515b565b6118ba91615182565b81526020016118cd60806060868861515b565b6118d691615182565b90529392505050565b5f602082146119275760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b6044820152606401611854565b61193461058e8385615182565b9392505050565b61196e6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61197b87878787612851565b60408601919091526020850191909152908352925061199a8388612c84565b60808501919091526060840191909152919791965090945050505050565b6119c0614e99565b5f6119c9614eb8565b8481526101408401805151602080840191909152815181015160408085019190915282518101516060808601919091529251830151608085015260e080880180515160a0870152805184015160c087015280518301519186019190915251909201516101008401529051611a5e91611a43918491016151f1565b60405160208183030381529060405280519060200120611f48565b9150611a6982612d57565b6020850152835260015b611a7f60026019615239565b811015611aff57611a9c83604051602001611a4391815260200190565b9250611aa783612d57565b85611ab3846002615144565b60198110611ac357611ac36151b2565b6020020186611ad3856002615144565b611ade90600161519f565b60198110611aee57611aee6151b2565b602002019190915252600101611a73565b50611b1682604051602001611a4391815260200190565b91505f611b2283612d57565b85611b2f600160196151c6565b60198110611b3f57611b3f6151b2565b60200201919091525050509250929050565b611b59614ed7565b5f805b601c811015611bab57611b7b84604051602001611a4391815260200190565b93505f611b8785612d57565b8584601c8110611b9957611b996151b2565b60200201919091525050600101611b5c565b5090929050565b611bba614ed7565b5f805b601c811015611c7d57611bce614eb8565b8481525f5b6008811015611c375786610160015183601c8110611bf357611bf36151b2565b60200201518160088110611c0957611c096151b2565b602002015182611c1a83600161519f565b60098110611c2a57611c2a6151b2565b6020020152600101611bd3565b50611c4c81604051602001611a4391906151f1565b94505f611c5886612d57565b8685601c8110611c6a57611c6a6151b2565b6020020191909152505050600101611bbd565b50909391925050565b5f5f611c90614ef6565b8381525f5b6028811015611ce3578561018001518160288110611cb557611cb56151b2565b602002015182611cc683600161519f565b60298110611cd657611cd66151b2565b6020020152600101611c95565b50611cf881604051602001611a43919061524c565b91505f611d0483612d57565b5096929550919350505050565b5f5f611d1b614f15565b8381525f5b611d2c6001601c6151c6565b811015611e6a57856101a0015181601b8110611d4a57611d4a6151b2565b60200201515182611d5c836004615144565b611d6790600161519f565b606d8110611d7757611d776151b2565b60200201526101a086015181601b8110611d9357611d936151b2565b60200201516020015182826004611daa9190615144565b611db590600261519f565b606d8110611dc557611dc56151b2565b60200201526101a086015181601b8110611de157611de16151b2565b60200201516040015182611df6836004615144565b611e0190600361519f565b606d8110611e1157611e116151b2565b60200201526101a086015181601b8110611e2d57611e2d6151b2565b60200201516060015182611e42836004615144565b611e4d90600461519f565b606d8110611e5d57611e5d6151b2565b6020020152600101611d20565b50611cf881604051602001611a439190615280565b5f5f611e89614f34565b8381525f5b601c811015611edc57856101c0015181601c8110611eae57611eae6151b2565b602002015182611ebf83600161519f565b601d8110611ecf57611ecf6151b2565b6020020152600101611e8e565b50611cf881604051602001611a4391906152b4565b5f5f611efb614f53565b8381526101e085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611cf891611a43918491016152e8565b5f611f605f51602061540a5f395f51905f528361531b565b92915050565b5f5f51602061540a5f395f51905f528284099392505050565b5f5f51602061540a5f395f51905f528284089392505050565b5f5f51602061540a5f395f51905f52611fbe835f51602061540a5f395f51905f526151c6565b84089392505050565b5f6119348361059384612335565b81515f908190611fed908560015b6020020151611f7f565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156120df576120d5826105938784611f98565b91506001016120be565b506120e8614f71565b5f5b6008811015612149575f848260088110612106576121066151b2565b6020020151905061211b816105938985611f98565b905061212681612335565b90508083836008811061213b5761213b6151b2565b6020020152506001016120ea565b505f5b600881101561219c575f878260088110612168576121686151b2565b60200201519050612185818484600881106107fa576107fa6151b2565b90506121918682611f7f565b95505060010161214c565b5061075c8483611f66565b5f5f6121bd600161059885610593896001611f98565b90506121c98482611f66565b95945050505050565b5f6121db614f90565b6121e6868285612d90565b6121f286868386612f3c565b6121fe86868386613124565b612209868285613320565b612214868285613508565b6122208686838661384b565b61222b8682856140e5565b6122368682856144b0565b61075c81856147a5565b612248614ed7565b81815260015b601c81101561229f57612280826122666001846151c6565b601c8110612276576122766151b2565b6020020151612400565b8282601c8110612292576122926151b2565b602002015260010161224e565b50919050565b6122ad614f34565b836122c66122c182865f6020020151611f98565b612335565b82525f5b601c81101561232c575f6122df85600161519f565b8211612301576122fe6122c1848885601c8110611fe357611fe36151b2565b90505b808461230e84600161519f565b601d811061231e5761231e6151b2565b6020020152506001016122ca565b50509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061540a5f395f51905f520360808201525f51602061540a5f395f51905f5260a082015260205f60c08360055afa905080612393575f5ffd5b50505f519392505050565b604080518082019091525f8082526020820152604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f611f60825f51602061540a5f395f51905f526151c6565b5f611f608283611f66565b5f601c5b80156124fa575f846124226001846151c6565b601c8110612432576124326151b2565b602002015190505f886124466001856151c6565b601c8110612456576124566151b2565b602002015190505f8761246a6001866151c6565b601c811061247a5761247a6151b2565b602002015190505f6124b5612499612492868d611f66565b6002611f66565b6105b6846105936124af8961059360018b611f98565b88611f98565b90506124d6816105936122c16124d08861059360018a611f98565b87611f7f565b9050868511806124e457819a505b5050505050806124f39061532e565b905061240f565b509395945050505050565b604080518082019091525f80825260208201525f612525601c602861519f565b61253090600261519f565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125be5760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612565565b50805184526020810151602085015250505092915050565b604080518082019091525f80825260208201527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4782602001517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761263a91906151c6565b612644919061531b565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516127e39190615343565b5f60405180830381855afa9150503d805f811461281b576040519150601f19603f3d011682016040523d82523d5f602084013e612820565b606091505b50915091505f8180602001905181019061283a9190615359565b90508280156128465750805b979650505050505050565b5f8080808061286186600361519f565b61286c90600c61519f565b67ffffffffffffffff81111561288457612884615378565b6040519080825280602002602001820160405280156128ad578160200160208202803683370190505b509050885f01515f1b815f815181106128c8576128c86151b2565b60200260200101818152505088602001515f1b816001815181106128ee576128ee6151b2565b60200260200101818152505088604001515f1b81600281518110612914576129146151b2565b60209081029190910101525f5b868110156129735788888281811061293b5761293b6151b2565b9050602002013582826003612950919061519f565b81518110612960576129606151b2565b6020908102919091010152600101612921565b506060890151518161298688600361519f565b81518110612996576129966151b2565b60209081029190910181019190915260608a01510151816129b888600361519f565b6129c390600161519f565b815181106129d3576129d36151b2565b6020908102919091010152606089015160400151816129f388600361519f565b6129fe90600261519f565b81518110612a0e57612a0e6151b2565b60209081029190910101526060808a0151015181612a2d88600361519f565b612a3890600361519f565b81518110612a4857612a486151b2565b602090810291909101015260808901515181612a6588600361519f565b612a7090600461519f565b81518110612a8057612a806151b2565b60209081029190910181019190915260808a0151015181612aa288600361519f565b612aad90600561519f565b81518110612abd57612abd6151b2565b602090810291909101015260808901516040015181612add88600361519f565b612ae890600661519f565b81518110612af857612af86151b2565b602090810291909101015260808901516060015181612b1888600361519f565b612b2390600761519f565b81518110612b3357612b336151b2565b602090810291909101015260a08901515181612b5088600361519f565b612b5b90600861519f565b81518110612b6b57612b6b6151b2565b60209081029190910181019190915260a08a0151015181612b8d88600361519f565b612b9890600961519f565b81518110612ba857612ba86151b2565b602090810291909101015260a08901516040015181612bc888600361519f565b612bd390600a61519f565b81518110612be357612be36151b2565b602090810291909101015260a08901516060015181612c0388600361519f565b612c0e90600b61519f565b81518110612c1e57612c1e6151b2565b602002602001018181525050612c3e81604051602001611a43919061538c565b9150612c4982612d57565b6040805160208101869052929750909550612c649101611a43565b91505f612c7083612d57565b50959a949950949750909550919350505050565b5f5f5f612c8f614faf565b8581526101008581018051516020808501919091528151810151604080860191909152825181015160608087019190915292518301516080860152610120808a0180515160a0880152805184015160c080890191909152815184015160e089015290518501519587019590955293890180515194860194909452835182015161014086015283518101516101608601529251909101516101808401529051612d3d91611a43918491016153c1565b9150612d4882612d57565b90979096509194509092505050565b5f80826fffffffffffffffffffffffffffffffff8116608082901c612d7b82611f48565b9450612d8681611f48565b9350505050915091565b5f612d9c84600761480a565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612dfd612df7612dd1856003611f98565b610593612dec612de18b5f61480a565b6105938c601c61480a565b6105938b601b61480a565b83611f66565b9050612e7e612e73612e5a612e41612e2885610598612e1d8d600261480a565b6105938e601b61480a565b610598612e368c600361480a565b6105938d601c61480a565b610598612e4f8b600461480a565b6105938c601d61480a565b610598612e688a600561480a565b6105938b601e61480a565b61059888600161480a565b9050612e9d81610598612e92866001611f98565b6105938a602661480a565b9050612ea98184611f66565b9050612eb58185611f66565b8552505f9050612eef612ee5612eda612ecf88601b61480a565b61059889601e61480a565b6105b688602361480a565b610598875f61480a565b9050612f0081610593846002611f98565b9050612f1181610593846001611f98565b9050612f1d8183611f66565b9050612f298184611f66565b9050808460015b60200201525050505050565b5f5f5f612f72612f68612f5089601b61480a565b610598612f5e8b601161480a565b8a60600151611f66565b8760800151611f7f565b9050612fab81610593612fa1612f898b601c61480a565b610598612f978d601261480a565b8c60600151611f66565b8960800151611f7f565b9050612fd081610593612fa1612fc28b601d61480a565b610598612f978d601361480a565b9050612ff581610593612fa1612fe78b601e61480a565b610598612f978d601461480a565b92505f9050613019612f6861300b89601b61480a565b610598612f5e8b600d61480a565b905061303e81610593612fa16130308b601c61480a565b610598612f978d600e61480a565b905061306381610593612fa16130558b601d61480a565b610598612f978d600f61480a565b905061308881610593612fa161307a8b601e61480a565b610598612f978d601061480a565b91505f90506130af6130a961309e89601f61480a565b6105988a601961480a565b84611f66565b90506130e4816105b66130de6130c68b602761480a565b6105986130d48d601a61480a565b8c60a00151611f66565b85611f66565b90506130f08185611f66565b6040860152505f6131136130de61310889601a61480a565b6105938a602761480a565b606090950194909452505050505050565b5f5f61318261316a61315261313d612fa18a601561480a565b61059861314b8b601661480a565b8a51611f66565b6105986131608a601761480a565b8960200151611f66565b61059861317889601861480a565b8860400151611f66565b91505f6131b96131a061319689601b61480a565b8860800151611f7f565b6105986131ae8a600361480a565b6105938b602361480a565b90505f6131e26131ca89601c61480a565b6105986131d78b5f61480a565b6105938c602461480a565b90505f61320c6131f38a601d61480a565b6105986132018c600161480a565b6105938d602561480a565b905061324b61323361322585610598868d5f0151611f66565b610598848c60200151611f66565b6105986132418c600461480a565b8b60400151611f66565b93505050505f61325f6130a988602061480a565b90505f6132706130a989602061480a565b90505f6132a861328f6132848b602261480a565b6105988c600661480a565b6105b661329d8c602261480a565b6105938d600661480a565b90505f6132cc6132c66132bb8789611f66565b6105938d602061480a565b83611f98565b90506132d88188611f66565b90505f6133006132f26132ec8d600661480a565b87611f66565b6105b66132ec8e602161480a565b60808a018390529050808960055b60200201525050505050505050505050565b5f61332c5f6001611f98565b90505f61333a5f6002611f98565b90505f6133485f6003611f98565b90505f61336461335988601c61480a565b6105b689601b61480a565b90505f61338061337589601d61480a565b6105b68a601c61480a565b90505f61339c6133918a601e61480a565b6105b68b601d61480a565b90505f6133b86133ad8b602361480a565b6105b68c601e61480a565b9050836133c981610593818b611f7f565b90506133d981610593878a611f7f565b90506133e9816105938789611f7f565b90506133fa816105938d600861480a565b9050613406818a611f66565b60c08b0152508261341b81610593818b611f7f565b905061342b81610593868a611f7f565b905061343b816105938689611f7f565b905061344c816105938d600861480a565b9050613458818a611f66565b60e08b0152508161346d81610593818b611f7f565b905061347d81610593858a611f7f565b905061348d816105938589611f7f565b905061349e816105938d600861480a565b90506134aa818a611f66565b6101008b015250806134c081610593818b611f7f565b90506134d081610593848a611f7f565b90506134e0816105938489611f7f565b90506134f1816105938d600861480a565b90506134fd818a611f66565b9050808a600961330e565b6135416040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61354c84601c61480a565b815261355984601d61480a565b602082015261356984602361480a565b604082015261357984602661480a565b606082015261358984602561480a565b608082015261359984602461480a565b60a08201525f6135aa85600261480a565b90505f6135b7865f61480a565b90505f6135cb8460400151855f0151611f98565b90505f6135e085602001518660200151611f66565b606086015190915086905f906135f69080611f66565b90505f61361461360e89602001518a60600151611f66565b88611f66565b90505f61363361362c8a60a001518b60400151611f7f565b8a51611f7f565b90506136426132ec8288611f66565b905061366361365d6136576124af8487611f98565b84611f7f565b83611f7f565b905061368b6136806136758387611f66565b6105938f600961480a565b61059360018a611f98565b6101408c015250505050602085015160808601515f916136aa91611f7f565b90505f6136c86136be886060015188611f66565b8860200151611f98565b90505f6136ec6136d88487611f66565b6105986130de8b60a001518c5f0151611f98565b90506137146137096136fe838c611f66565b6105938e600961480a565b610593600189611f98565b6101608b0152505f9150613735905061372e836011611f7f565b8751611f66565b90505f6137428384611f7f565b905061374e8182611f7f565b90505f61375c836009611f66565b905061378561377f6130a96137788b60a001518c5f0151611f7f565b8b51611f7f565b82611f98565b60c089018190525f906137a09061360e90613675908d611f66565b90506137b38b600a602002015182611f7f565b6101408c0152505086515f92506137da915061372e906137d39080611f7f565b8851611f7f565b90505f61381a6137f5836105938a5f01518b60a00151611f98565b60208901516105b6906138089080611f7f565b6105938b602001518c60800151611f7f565b905061383789600b602002015161059861360e613675858d611f66565b89600b602002015250505050505050505050565b6138df604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6139146138fb6138f087601b61480a565b61059388602461480a565b61059861390988602361480a565b61059389601c61480a565b815261395961394e61393561392a88601b61480a565b61059389601e61480a565b61059861394389601c61480a565b6105938a601d61480a565b6105b687602561480a565b6040820181905261396e90600160441b611f66565b60408201819052613984906105b687602661480a565b6040820181905281516139979190611f7f565b604082018190526139ad9061059387600561480a565b604082015280516139c290600160441b611f66565b8082526139e2906105986139d788602361480a565b61059389602461480a565b808252602082018190526139fe906105b6612ecf88601d61480a565b60208201819052613a149061059387600461480a565b6020820152805160608201819052613a319061059887601e61480a565b60608201819052613a55906105b6613a4a88602561480a565b61059889602661480a565b60608201819052613a6a90610593875f61480a565b8160600181815250505f613a93613a8983602001518460400151611f7f565b8360600151611f7f565b9050613aa48161059388600361480a565b9050613abc613ab487602461480a565b614000611f66565b60808301819052613ad29061059888602361480a565b60808301819052613ae590614000611f66565b60808301819052613afb9061059888601d61480a565b60808301819052613b0e90614000611f66565b60808301819052613b249061059888601c61480a565b60808301819052613b3790614000611f66565b60808301819052613b4d9061059888601b61480a565b60808301819052613b63906105b688601e61480a565b60808301819052613b799061059388600561480a565b6080830152613b8c613ab487602561480a565b60a08301819052613ba29061059888602461480a565b60a08301819052613bb590614000611f66565b60a08301819052613bcb9061059888602361480a565b60a08301819052613bde90614000611f66565b60a08301819052613bf49061059888601e61480a565b60a08301819052613c0790614000611f66565b60a08301819052613c1d9061059888601d61480a565b60a08301819052613c33906105b688602661480a565b60a08301819052613c4890610593885f61480a565b60a0830181905260808301515f91613c609190611f7f565b9050613c718161059389600461480a565b9050613c8b613c8188601d61480a565b8760400151611f66565b60c08401819052613ca4906105986131608a601c61480a565b60c08401819052613cc490610598613cbd8a601b61480a565b8951611f66565b60c08401819052613cda9061059889600161480a565b60c0840181905260e08401819052613cf7906105b689601e61480a565b60c0840152613d0a61335988602361480a565b610140840152613d29613d1e88602661480a565b6105b689601e61480a565b610120840152610140830151613d4e90613d439080611f66565b846101400151611f98565b610280840152610140830151613d9090613d8590613d7e9061059360015f51602061540a5f395f51905f526151c6565b6001611f7f565b846101200151611f66565b6101608401819052613dc790613db990610593613dae8b600261480a565b6105938c600361480a565b6105936132ec8a600a61480a565b6101a0860152610280830151613de990613db990610593613dae8b600261480a565b6101c086015260c0830151613e1190610593613e068a600261480a565b6105938b600361480a565b6101e08401525f613e30613e2689601e61480a565b8560e00151611f98565b9050613e3f61377f8283611f66565b6101a0850152613e5361317889602561480a565b6101008501819052613e7790610598613e6d8b602461480a565b8a60200151611f66565b6101008501819052613e919061059861314b8b602361480a565b610100850152613eb0613ea589602661480a565b856101000151611f98565b6101008501525f613ec56133918a602561480a565b9050613f19613ef3612df7613d7e88610140015160015f51602061540a5f395f51905f5261059391906151c6565b610593613d7e88610100015160015f51602061540a5f395f51905f5261059391906151c6565b610180860152610100850151613f3e90613f339080611f66565b866101000151611f98565b6101c0860152610180850151613f7190613f5d906105938c600761480a565b610593613f6b8c600a61480a565b89611f66565b6101e0880152610280850151613f9090613f5d906105938c600761480a565b6102008801526101c0850151613faf90613f5d906105938c600761480a565b6102208801526101a0850151613fca906105938b600761480a565b610200860152613fe9613fde8a602461480a565b6105b68b601c61480a565b610220860152610140850151614028906133919061401d90613d7e9061059360015f51602061540a5f395f51905f526151c6565b876102200151611f66565b61024086018190526101e0860151610260870181905261405f91610598906105936140548e600561480a565b6105938f600261480a565b610260860181905260c08601516140829190610598906105936140548e5f61480a565b610260860181905261020086015161409a9190611f7f565b61026086018190526140b0906136579086611f7f565b6102a086018190526140ca90610593613f6b8c600a61480a565b6102a0860181905287600c6020020152505050505050505050565b61415b6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61417461416985601b61480a565b61059886600261480a565b815261418f61418485601c61480a565b61059886600361480a565b60208201526141ad6141a285601d61480a565b61059886600461480a565b60408201526141cb6141c085601e61480a565b61059886600561480a565b606082015280516141fd906141f6906141ef906141e89080611f66565b8451611f66565b8351611f66565b8251611f66565b6080820152602081015161423b90614231906142279061421d9080611f66565b8460200151611f66565b8360200151611f66565b8260200151611f66565b60a082015260408101516142799061426f906142659061425b9080611f66565b8460400151611f66565b8360400151611f66565b8260400151611f66565b60c082015260608101516142b7906142ad906142a3906142999080611f66565b8460600151611f66565b8360600151611f66565b8260600151611f66565b60e0820152608081015160a08201516142d09190611f7f565b61010082015260c081015160e08201516142ea9190611f7f565b61012082015260a081015161430e906143039080611f7f565b826101200151611f7f565b61014082015260e0810151614332906143279080611f7f565b826101000151611f7f565b6101608201526101208101516143489080611f7f565b6101e082018190526143699061435e9080611f7f565b826101600151611f7f565b6101e082015261010081015161437f9080611f7f565b6101a082018190526143a0906143959080611f7f565b826101400151611f7f565b6101a082018190526101608201516143b791611f7f565b6101808201526101408101516101e08201516143d39190611f7f565b6101c08201526143e7612df785600b61480a565b61020082018190526102408401516101808301516144129261059891610593906105b68a602361480a565b83601260200201526144428360136020020151610598836102000151610593856101a001516105b68a602461480a565b83601360200201526144728360146020020151610598836102000151610593856101c001516105b68a602561480a565b83601460200201526144a28360156020020151610598836102000151610593856101e001516105b68a602661480a565b836015602002015250505050565b6145026040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145377f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611f48565b81526020016145657f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611f48565b81526020016145927e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611f48565b81526020016145c07f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611f48565b905290506145dd6145d286601b61480a565b61059887600261480a565b61012083018190526146119061460690613d85906145fb9080611f66565b856101200151611f66565b836101200151611f66565b825261461e85601c61480a565b602083015261462e85601d61480a565b604083015261463e85601e61480a565b60608301528151602083015161466691613a899161465c9190611f7f565b8460400151611f7f565b60808301526146796130a986600c61480a565b610140830152815161469a9061469090835f6107fa565b8360800151611f7f565b60a08301526146c684601660200201516105988461014001516105938660a001516105b68b602361480a565b6102c085015260208201516146e190614690908360016107fa565b60c083015261470d84601760200201516105988461014001516105938660c001516105b68b602461480a565b6102e0850152604082015161472890614690908360026107fa565b60e083015261475484601860200201516105988461014001516105938660e001516105b68b602561480a565b610300850152606082015161476f90614690908360036107fa565b61010083015261479d84601960200201516105988461014001516105938661010001516105b68b602661480a565b846019612f30565b5f6147b1818481611fe3565b905060015b601a811015614803576147f9826105988684601a81106147d8576147d86151b2565b6020020151866147e96001876151c6565b601981106107fa576107fa6151b2565b91506001016147b6565b5092915050565b5f8282602781111561481e5761481e6153f5565b6028811061482e5761482e6151b2565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161487360405180604001604052805f81526020015f81525090565b815260200161489360405180604001604052805f81526020015f81525090565b81526020016148b360405180604001604052805f81526020015f81525090565b81526020016148d360405180604001604052805f81526020015f81525090565b81526020016148f360405180604001604052805f81526020015f81525090565b815260200161491360405180604001604052805f81526020015f81525090565b815260200161493360405180604001604052805f81526020015f81525090565b815260200161495360405180604001604052805f81526020015f81525090565b815260200161497360405180604001604052805f81526020015f81525090565b815260200161499360405180604001604052805f81526020015f81525090565b81526020016149b360405180604001604052805f81526020015f81525090565b81526020016149d360405180604001604052805f81526020015f81525090565b81526020016149f360405180604001604052805f81526020015f81525090565b8152602001614a1360405180604001604052805f81526020015f81525090565b8152602001614a3360405180604001604052805f81526020015f81525090565b8152602001614a5360405180604001604052805f81526020015f81525090565b8152602001614a7360405180604001604052805f81526020015f81525090565b8152602001614a9360405180604001604052805f81526020015f81525090565b8152602001614ab360405180604001604052805f81526020015f81525090565b8152602001614ad360405180604001604052805f81526020015f81525090565b8152602001614af360405180604001604052805f81526020015f81525090565b8152602001614b1360405180604001604052805f81526020015f81525090565b8152602001614b3360405180604001604052805f81526020015f81525090565b8152602001614b5360405180604001604052805f81526020015f81525090565b8152602001614b7360405180604001604052805f81526020015f81525090565b8152602001614b9360405180604001604052805f81526020015f81525090565b8152602001614bb360405180604001604052805f81526020015f81525090565b905290565b6040518061022001604052805f81526020015f81526020015f8152602001614bfd60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c2960405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c5560405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c8160405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cad60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cd960405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d0560405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3160405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3e614fce565b8152602001614d4b614ffc565b8152602001614d5861501b565b8152602001614d65614ed7565b8152602001614d9160405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614bb360405180608001604052805f81526020015f81526020015f81526020015f81525090565b604051806101000160405280614dfc6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001614e09614e99565b8152602001614e16614ed7565b8152602001614e23614ed7565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b604080518082019091525f8082526020820152815260200190600190039081614e705790505090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b604051806101a00160405280600d906020820280368337509192915050565b604051806103800160405280601c905b614fe6614f71565b815260200190600190039081614fde5790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b61505260405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020019060019003908161502b5790505090565b5f5f5f5f6040858703121561507b575f5ffd5b843567ffffffffffffffff811115615091575f5ffd5b8501601f810187136150a1575f5ffd5b803567ffffffffffffffff8111156150b7575f5ffd5b8760208284010111156150c8575f5ffd5b60209182019550935085013567ffffffffffffffff8111156150e8575f5ffd5b8501601f810187136150f8575f5ffd5b803567ffffffffffffffff81111561510e575f5ffd5b8760208260051b8401011115615122575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611f6057611f60615130565b5f5f85851115615169575f5ffd5b83861115615175575f5ffd5b5050820193919092039150565b80356020831015611f60575f19602084900360031b1b1692915050565b80820180821115611f6057611f60615130565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611f6057611f60615130565b5f600182016151ea576151ea615130565b5060010190565b5f8183825b60098110156152155781518352602092830192909101906001016151f6565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261524757615247615225565b500490565b5f8183825b6029811015615270578151835260209283019290910190600101615251565b5050506105208201905092915050565b5f8183825b606d8110156152a4578151835260209283019290910190600101615285565b505050610da08201905092915050565b5f8183825b601d8110156152d85781518352602092830192909101906001016152b9565b5050506103a08201905092915050565b5f8183825b600581101561530c5781518352602092830192909101906001016152ed565b50505060a08201905092915050565b5f8261532957615329615225565b500690565b5f8161533c5761533c615130565b505f190190565b5f82518060208501845e5f920191825250919050565b5f60208284031215615369575f5ffd5b81518015158114611934575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156153b6578151845260209384019390910190600101615398565b509195945050505050565b5f8183825b600d8110156153e55781518352602092830192909101906001016153c6565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220ffd8c175ac6f3ce348eaad1895fc4ea0e9c5ee63e59ddc3f848ef428a6634d7d64736f6c634300081b0033";
4
+ export const HonkVerifierBytecode = "0x60e060405234801561000f575f5ffd5b506302000000608052601960a0526103dc60c05260805160a05160c0516154616100625f395f6105c101525f818161066d015281816107c001528181610c420152610d9001525f61056a01526154615ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ea50d0e41461002d575b5f5ffd5b61004061003b36600461506a565b610054565b604051901515815260200160405180910390f35b5f6100626101bb6020615146565b8414610081576040516376ba560560e11b815260040160405180910390fd5b5f61008a610195565b90505f61009787876101aa565b604083015190915084146100be5760405163fa06659360e01b815260040160405180910390fd5b5f6100cf82878786604001516104a9565b90506101208686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508451606081015160809091015160408801519193509150610554565b815160a001525f6101318383610665565b905080610151576040516313f8744360e31b815260040160405180910390fd5b5f61015d848685610766565b90508061017d576040516352ec174560e11b815260040160405180910390fd5b8180156101875750805b9a9950505050505050505050565b61019d61483c565b6101a5610f05565b905090565b6101b2614bba565b6101bf60205f848661515d565b6101c891615184565b81526101d860406020848661515d565b6101e191615184565b60208201526101f460606040848661515d565b6101fd91615184565b604082015261021861021360e06060858761515d565b6117ed565b606082015261022f61021361016060e0858761515d565b60808201526102476102136101e0610160858761515d565b60a082015261025f6102136102606101e0858761515d565b6101008201526102786102136102e0610260858761515d565b6101208201526102916102136103606102e0858761515d565b60c08201526102a96102136103e0610360858761515d565b6101408201526102c26102136104606103e0858761515d565b60e08201526104605f5b601c811015610359575f5b6008811015610350576103038684876102f18260206151a1565b926102fe9392919061515d565b6118e1565b84610160015183601c811061031a5761031a6151b4565b60200201518260088110610330576103306151b4565b60200201818152505060208361034691906151a1565b92506001016102d7565b506001016102cc565b505f5b60288110156103ad576103768583866102f18260206151a1565b836101800151826028811061038d5761038d6151b4565b6020020181815250506020826103a391906151a1565b915060010161035c565b505f5b6103bc6001601c6151c8565b811015610412576103e18583866103d48260806151a1565b926102139392919061515d565b836101a0015182601b81106103f8576103f86151b4565b60200201526104086080836151a1565b91506001016103b0565b505f5b601c8110156104665761042f8583866102f18260206151a1565b836101c0015182601c8110610446576104466151b4565b60200201818152505060208261045c91906151a1565b9150600101610415565b506104788482856103d48260806151a1565b6101e08301526104898160806151a1565b905061049c8482856103d48260806151a1565b6102008301525092915050565b6104b1614dbf565b5f6104bf868686868561193d565b90835290506104ce81876119ba565b602084019190915290506104e181611b53565b604084019190915290506104f58682611bb4565b606084019190915290506105098682611c88565b6080840191909152905061051d8682611d13565b60a084019190915290506105318682611e81565b60c084019190915290506105458682611ef3565b5060e083015250949350505050565b5f6001808261059d866105988961059361058e8a7f00000000000000000000000000000000000000000000000000000000000000006151a1565b611f4a565b611f68565b611f81565b90505f6105bb876105b68a61059361058e8b60016151a1565b611f9a565b90505f5b7f000000000000000000000000000000000000000000000000000000000000000081101561064d575f61060a8b83815181106105fd576105fd6151b4565b6020026020010151611f4a565b905061061a866105938684611f81565b955061062a856105938584611f81565b9450610636848b611f81565b9350610642838b611f9a565b9250506001016105bf565b506106588484611fc9565b9998505050505050505050565b5f806001815b7f000000000000000000000000000000000000000000000000000000000000000081101561073c575f86610160015182601c81106106ab576106ab6151b4565b602002015190505f6106bd8286611fd7565b9050806106dd576040516313f8744360e31b815260040160405180910390fd5b5f876060015184601c81106106f4576106f46151b4565b602002015190506107058382611ffa565b955061072c886040015185601c8110610720576107206151b4565b602002015186836121a9565b945050505080600101905061066b565b505f610756866101800151865f01518760200151856121d4565b90508281145b9695505050505050565b5f6107946040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5f6107a28460a00151612242565b90506107ac614e43565b6107b4614e62565b5f6107e48760e00151857f00000000000000000000000000000000000000000000000000000000000000006122a7565b805160c089015191925061080491610598908460015b6020020151611f68565b855260a08701516108309061081890612337565b825160c08a015161059391906105b6908660016107fa565b6020860152600183526101e0890151610848906123a0565b82526001606086018190525f60808701525b602381116109005761087b610871875f01516123ea565b8760600151611f68565b84826046811061088d5761088d6151b4565b602002015260808601516101808b01516108d09190610598906108b16001866151c8565b602881106108c1576108c16151b4565b60200201518960600151611f68565b8660800181815250506108eb86606001518960800151611f68565b60608701526108f9816151db565b905061085a565b505f61090e602360016151a1565b90505b6028811161098f5761092961087187602001516123ea565b84826046811061093b5761093b6151b4565b602002015260808601516101808b015161095f9190610598906108b16001866151c8565b86608001818152505061097a86606001518960800151611f68565b6060870152610988816151db565b9050610911565b50606088015182600160200201526080880151826002602002015260a0880151826003602002015260c0880151826004602002015260e0880151826005602002015261010088015182600660200201526101208801518260076020020152610140880151826008602002015261016088015182600960200201526101a088015182600a602002015261018088015182600b60200201526101c088015182600c60200201526101e088015182600d602002015261020088015182600e602002015261022088015182600f60200201526102408801518260106020020152610260880151826011602002015261028088015182601260200201526102a088015182601360200201526102c088015182601460200201526102e08801518260156020020152610300880151826016602002015261032088015182601760200201526103408801518260186020020152610360880151826019602002015261038088015182601a60200201526103a088015182601b60200201526060890151610b13906123a0565b6103808301526080890151610b27906123a0565b6103a083015260a0890151610b3b906123a0565b6103c083015260c0890151610b4f906123a0565b6103e083015260e0890151610b63906123a0565b610400830152610140890151610b78906123a0565b610420830152610100890151610b8d906123a0565b610440830152610120890151610ba2906123a0565b6104608301526060890151610bb6906123a0565b6104808301526080890151610bca906123a0565b6104a083015260a0890151610bde906123a0565b6104c083015260c0890151610bf2906123a0565b6104e083015260e0890151610c06906123a0565b6105008301525f604086015260c0870151610c2090612402565b60608601525f5b610c336001601c6151c8565b811015610d78575f610c6660017f00000000000000000000000000000000000000000000000000000000000000006151c8565b82101590505f81610ccf576060880151610c969085610c868660026151a1565b601d81106107fa576107fa6151b4565b9050610ca1816123ea565b8684610caf602860016151a1565b610cb991906151a1565b60468110610cc957610cc96151b4565b60200201525b610cfe8860400151610598838f6101c00151876001610cee91906151a1565b601c81106107fa576107fa6151b4565b6040890152606088015160c08b0151610d179190611f68565b60608901526101a08c0151610d419084601b8110610d3757610d376151b4565b60200201516123a0565b8584610d4f602860016151a1565b610d5991906151a1565b60468110610d6957610d696151b4565b60200201525050600101610c27565b505f610db4886060015187608001518c6101c00151887f000000000000000000000000000000000000000000000000000000000000000061240d565b6040870151909150610dcb9061059883855f6107fa565b604087018190526101c08b01515160c08a0151610df9929161059891610df19190611f68565b8560016107fa565b6040808801919091528051808201909152600181526002602082015283610e22601c60286151a1565b60468110610e3257610e326151b4565b6020020152604086015184610e49601c60286151a1565b60468110610e5957610e596151b4565b60200201526102008a01515f90610e6f906123a0565b90508084610e7f601c60286151a1565b610e8a9060016151a1565b60468110610e9a57610e9a6151b4565b602002015260e089015185610eb1601c60286151a1565b610ebc9060016151a1565b60468110610ecc57610ecc6151b4565b60200201525f610edc8587612507565b90505f610ee8836125d8565b9050610ef4828261264f565b9d9c50505050505050505050505050565b610f0d61483c565b50604080516103c0810182526302000000815260196020808301919091526103dc82840152825180840184527f2378ceae0a35f62b96a226d6bb080ddad1f63bb2ba4e32afe28886d7293c051a81527f109d29a0ed7d03fc06b466ac806a1fc51040190656c694a32c4cc4b5e4699716818301526060830152825180840184527f1c2bf2f103170e83499b836a67286aa099019315b2eab18c5197c726e56cf6fb81527f2c622f6a1fa315d3dcbe22c320e217e64beee623e670669bb0235eee7afde96f818301526080830152825180840184527f1de25b8025015be9e2a7df54dfa352ad5a45e954f53a3d8af6973b93a9a76ac281527f06dcc68804907b2f6c5f2a1a9e85ee6da4cd1cf4497e6cf201562a4956f067bb8183015260a0830152825180840184527f10fb205d33672c415d218606d08fccb04dca56ed79fc86fd71cdd67dc202d87681527f1af8842173c514e28dd628188a28c2ba99499a80d0668d864199e8bebd14a9128183015260c0830152825180840184527f0a103bf9ab0c1aef78b996b9a4454cd90ded22ddf0be2a97cd540bfa66be3c5e81527f10bd5c07cf7f2c8958bd58e7199fad8f5d93803264d9c8f2508d321fd71f4e468183015260e0830152825180840184527f095c2cbe5924342767a0076f12a9ff73f434c10bea7433d0dfc8047f69da7b3a81527f208083c0beadec324fae19dda9bafa9e89efd0df806e98369d6a5111fefe298881830152610100830152825180840184527f035d97a928b728d4f4d460c4bdcf11ea8c8bd382f233fe512c394b0b6da9152481527f26961d0bf338d36d2b5ec2f59675073ad262b9bacae3bc100ea54158e763f64781830152610120830152825180840184527f2e91320bf6a24c6a4c9ca1effb52baa201e749de022b8e6eb133d0ea4febd21d81527f01e7b8aad001e6df5c938fd22c1867b13229912974b68ab5c2208c3a8641510581830152610140830152825180840184527f0ef3865dfc018a6798f51e4019d5cbcacef3c689b3efa71c1cca3c124a64b44581527f2ef9437fd0ab64bfadf16a146982a9eacd11011c61ff3abbc6f7ef726b662d2b81830152610160830152825180840184527f2cdad4c0493194be5d7fef051c21a90cdf4e7ec249fd2d91ca0e736680cecf0981527f15e34718d9af0bc76b5e7f76944fe7fabfa34f398ff2e21f3b2803836ee512cc81830152610180830152825180840184527f25230c6ec90e36eaed1d4e29ab95012d412ba7246b4ff8d305c641747c43a99a81527f218824da4a96a25aefaec48f2b7b8092967a1c3a388fdec36f750586a6615e18818301526101a0830152825180840184527f2ccdb65df197c6e42cce72bc8037d3f12f4edbd55dc807075dd95670a5d2c69281527f152a3b7ea603664fefb2484eed5dd3294692d2f8332715dd0a24cd15c2eac2f4818301526101c0830152825180840184527f232b14f4a92d5b6f2de9f34d0b0e2db98b4607139ae8fdb664d9386b59124f6981527f24bbe2a5fae8d4d5ae538bf6ffe582179ec1d8e0eac2092418627644a5e03fc6818301526101e0830152825180840184527f01c72251e930f2eef26525fd57bc7a9bd8f21a32aa6e7a28dccfe49d102ce2f881527f0e497a771a24b778d42b893c61e868489e033b1387c78b3d6ec4a7e3dd3a5f1781830152610200830152825180840184527f2ee9d8565a74f34c6ab72f20ebe109b9e35ab5a0ae2efc094b66ef73e7d1b49581527f1df97e3308b9daa3153167dbb0f4fa9eba43e2d8adfebc5743a195c620c667ad81830152610220830152825180840184527f2ac7f8ada41802c2ca8ff6c3252c2fcf9d261c1582dca500ee3dce06f47e96af81527f158572badfb9bf645778c56d9e872691359ce4e99be71d3b95ccee1471dca25b81830152610240830152825180840184527f085d25772c74d981f81eef7f597ee5715378c3b247225712f812ba446b1e838c81527f18ddf9886af41a46ba598fc961b409fc383ad18974128eac7e473bd8d9c2375181830152610260830152825180840184527f1abd5df832fd5db09df317f2255ec6a239c11c6fdb95c4f9b9b536f6301cb9cb81527f290bfdd8ad5f4dabac02a9659aa81d121d62ab50d9231cf7e6a1683a071bf74e81830152610280830152825180840184527f0411027793df954052331a722759ce7d8709c5cd1d2f5059f26aeacb5b8b5a2a81527f14b6023824b3d5e217c418a8fa3eebad21f045ef08d9c904750f4491f194adcd818301526102a0830152825180840184527f19b98ff603cd6670796b3bfdf00a22c27ed5979b0e7607a19b980f1e06fddd0081527f262eabe1c11a96289a217e562f6b03e61a2cc585a9a0b41312ad68553b272c68818301526102c0830152825180840184527f28717d9305bb25c258e586558245a245e6ca8925046bd567ee63dc3ed25ae9c981527f0de20afd928e42b0e537de844338919dfc11cfa468632228c667c7f077ab7b57818301526102e0830152825180840184527f0d1c51a0944e73b5bf5059109cfc7756b18ab597ee97fcdceb68e08e7a9325ec81527f2d0ebb65c43bb88f0e0af105cb368e35a8117262fa463c5e4a91e60a63285d5881830152610300830152825180840184527f237fc3d6ca839bf8fe66beb52f778994d8d05f3496301df3cb1030649802eb1881527f1013ad0339d32e695efdc9e28675f47f332bda5954966f00469214f4ee763b8481830152610320830152825180840184527f0c124a2788b4e0e45ebc1003affc7b699ea00567da3fa1f4bef7f9f97698340481527f0655bd829b537acf9fdc36831274395bdd5d3c181d2e84ddd3dfa1192c5f518481830152610340830152825180840184527f2664e1b3d5bd93796c3e968511ad456c3b10db55de4e939e1a8eb6279d99ea9a81527f2a8a81f4857a08db4de35ca43cc4e145c8719ce30616be286b5a565e4ee99e9c81830152610360830152825180840184526001815260028183015261038083015282518084019093527f167b2a1b3d21b3a9ff0c0493cd2134750f68bfbd035f0e1be656e444990a90ea83527f065f27d166341dba07bdec35aaada3ed94f114dd97b04d179a961b6185e76b87908301526103a081019190915290565b61181460405180608001604052805f81526020015f81526020015f81526020015f81525090565b6080821461185f5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a5908189e5d195cc81c1bda5b9d606a1b60448201526064015b60405180910390fd5b60408051608081019091528061187860205f868861515d565b61188191615184565b815260209081019061189790604090868861515d565b6118a091615184565b81526020016118b360606040868861515d565b6118bc91615184565b81526020016118cf60806060868861515d565b6118d891615184565b90529392505050565b5f602082146119295760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b210313cba32b99039b1b0b630b960611b6044820152606401611856565b61193661058e8385615184565b9392505050565b6119706040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f61197d87878787612853565b60408601919091526020850191909152908352925061199c8388612c86565b60808501919091526060840191909152919791965090945050505050565b6119c2614e9b565b5f6119cb614eba565b8481526101408401805151602080840191909152815181015160408085019190915282518101516060808601919091529251830151608085015260e080880180515160a0870152805184015160c087015280518301519186019190915251909201516101008401529051611a6091611a45918491016151f3565b60405160208183030381529060405280519060200120611f4a565b9150611a6b82612d59565b6020850152835260015b611a816002601961523b565b811015611b0157611a9e83604051602001611a4591815260200190565b9250611aa983612d59565b85611ab5846002615146565b60198110611ac557611ac56151b4565b6020020186611ad5856002615146565b611ae09060016151a1565b60198110611af057611af06151b4565b602002019190915252600101611a75565b50611b1882604051602001611a4591815260200190565b91505f611b2483612d59565b85611b31600160196151c8565b60198110611b4157611b416151b4565b60200201919091525050509250929050565b611b5b614ed9565b5f805b601c811015611bad57611b7d84604051602001611a4591815260200190565b93505f611b8985612d59565b8584601c8110611b9b57611b9b6151b4565b60200201919091525050600101611b5e565b5090929050565b611bbc614ed9565b5f805b601c811015611c7f57611bd0614eba565b8481525f5b6008811015611c395786610160015183601c8110611bf557611bf56151b4565b60200201518160088110611c0b57611c0b6151b4565b602002015182611c1c8360016151a1565b60098110611c2c57611c2c6151b4565b6020020152600101611bd5565b50611c4e81604051602001611a4591906151f3565b94505f611c5a86612d59565b8685601c8110611c6c57611c6c6151b4565b6020020191909152505050600101611bbf565b50909391925050565b5f5f611c92614ef8565b8381525f5b6028811015611ce5578561018001518160288110611cb757611cb76151b4565b602002015182611cc88360016151a1565b60298110611cd857611cd86151b4565b6020020152600101611c97565b50611cfa81604051602001611a45919061524e565b91505f611d0683612d59565b5096929550919350505050565b5f5f611d1d614f17565b8381525f5b611d2e6001601c6151c8565b811015611e6c57856101a0015181601b8110611d4c57611d4c6151b4565b60200201515182611d5e836004615146565b611d699060016151a1565b606d8110611d7957611d796151b4565b60200201526101a086015181601b8110611d9557611d956151b4565b60200201516020015182826004611dac9190615146565b611db79060026151a1565b606d8110611dc757611dc76151b4565b60200201526101a086015181601b8110611de357611de36151b4565b60200201516040015182611df8836004615146565b611e039060036151a1565b606d8110611e1357611e136151b4565b60200201526101a086015181601b8110611e2f57611e2f6151b4565b60200201516060015182611e44836004615146565b611e4f9060046151a1565b606d8110611e5f57611e5f6151b4565b6020020152600101611d22565b50611cfa81604051602001611a459190615282565b5f5f611e8b614f36565b8381525f5b601c811015611ede57856101c0015181601c8110611eb057611eb06151b4565b602002015182611ec18360016151a1565b601d8110611ed157611ed16151b4565b6020020152600101611e90565b50611cfa81604051602001611a4591906152b6565b5f5f611efd614f55565b8381526101e085018051516020808401919091528151810151604080850191909152825181015160608086019190915292519092015160808401529051611cfa91611a45918491016152ea565b5f611f625f51602061540c5f395f51905f528361531d565b92915050565b5f5f51602061540c5f395f51905f528284099392505050565b5f5f51602061540c5f395f51905f528284089392505050565b5f5f51602061540c5f395f51905f52611fc0835f51602061540c5f395f51905f526151c8565b84089392505050565b5f6119368361059384612337565b81515f908190611fef908560015b6020020151611f81565b929092149392505050565b60408051610100810182527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffec5181526102d060208201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff1191810191909152609060608201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff71608082015260f060a08201527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffd3160c08201526113b060e08201525f906001825b60088110156120e1576120d7826105938784611f9a565b91506001016120c0565b506120ea614f73565b5f5b600881101561214b575f848260088110612108576121086151b4565b6020020151905061211d816105938985611f9a565b905061212881612337565b90508083836008811061213d5761213d6151b4565b6020020152506001016120ec565b505f5b600881101561219e575f87826008811061216a5761216a6151b4565b60200201519050612187818484600881106107fa576107fa6151b4565b90506121938682611f81565b95505060010161214e565b5061075c8483611f68565b5f5f6121bf600161059885610593896001611f9a565b90506121cb8482611f68565b95945050505050565b5f6121dd614f92565b6121e8868285612d92565b6121f486868386612f3e565b61220086868386613126565b61220b868285613322565b61221686828561350a565b6122228686838661384d565b61222d8682856140e7565b6122388682856144b2565b61075c81856147a7565b61224a614ed9565b81815260015b601c8110156122a157612282826122686001846151c8565b601c8110612278576122786151b4565b6020020151612402565b8282601c8110612294576122946151b4565b6020020152600101612250565b50919050565b6122af614f36565b836122c86122c382865f6020020151611f9a565b612337565b82525f5b601c81101561232e575f6122e18560016151a1565b8211612303576123006122c3848885601c8110611fe557611fe56151b4565b90505b80846123108460016151a1565b601d8110612320576123206151b4565b6020020152506001016122cc565b50509392505050565b5f5f8290505f604051602081526020808201526020604082015282606082015260025f51602061540c5f395f51905f520360808201525f51602061540c5f395f51905f5260a082015260205f60c08360055afa905080612395575f5ffd5b50505f519392505050565b604080518082019091525f8082526020820152604051806040016040528060888460200151901b845f015117815260200160888460600151901b8460400151178152509050919050565b5f611f62825f51602061540c5f395f51905f526151c8565b5f611f628283611f68565b5f601c5b80156124fc575f846124246001846151c8565b601c8110612434576124346151b4565b602002015190505f886124486001856151c8565b601c8110612458576124586151b4565b602002015190505f8761246c6001866151c8565b601c811061247c5761247c6151b4565b602002015190505f6124b761249b612494868d611f68565b6002611f68565b6105b6846105936124b18961059360018b611f9a565b88611f9a565b90506124d8816105936122c36124d28861059360018a611f9a565b87611f81565b9050868511806124e657819a505b5050505050806124f590615330565b9050612411565b509395945050505050565b604080518082019091525f80825260208201525f612527601c60286151a1565b6125329060026151a1565b90506001604051855151604082015285516020015160608201528451608082015260408160606040840160075afa8216915060015b838110156125c05760208102870160208202870181515160408501528151602001516060850152805160808501525050604080830160606040850160075afa8316925060408260808460065afa90921691600101612567565b50805184526020810151602085015250505092915050565b604080518082019091525f80825260208201527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4782602001517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761263c91906151c8565b612646919061531d565b60208301525090565b81516020808401518351848301516040805194850195909552938301919091527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c260608301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed60808301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b60a08301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa60c083015260e08201526101008101919091527f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c16101208201527f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b06101408201527f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe46101608201527f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e556101808201525f9081906101a00160405160208183030381529060405290505f5f60086001600160a01b0316836040516127e59190615345565b5f60405180830381855afa9150503d805f811461281d576040519150601f19603f3d011682016040523d82523d5f602084013e612822565b606091505b50915091505f8180602001905181019061283c919061535b565b90508280156128485750805b979650505050505050565b5f808080806128638660036151a1565b61286e90600c6151a1565b67ffffffffffffffff8111156128865761288661537a565b6040519080825280602002602001820160405280156128af578160200160208202803683370190505b509050885f01515f1b815f815181106128ca576128ca6151b4565b60200260200101818152505088602001515f1b816001815181106128f0576128f06151b4565b60200260200101818152505088604001515f1b81600281518110612916576129166151b4565b60209081029190910101525f5b868110156129755788888281811061293d5761293d6151b4565b905060200201358282600361295291906151a1565b81518110612962576129626151b4565b6020908102919091010152600101612923565b50606089015151816129888860036151a1565b81518110612998576129986151b4565b60209081029190910181019190915260608a01510151816129ba8860036151a1565b6129c59060016151a1565b815181106129d5576129d56151b4565b6020908102919091010152606089015160400151816129f58860036151a1565b612a009060026151a1565b81518110612a1057612a106151b4565b60209081029190910101526060808a0151015181612a2f8860036151a1565b612a3a9060036151a1565b81518110612a4a57612a4a6151b4565b602090810291909101015260808901515181612a678860036151a1565b612a729060046151a1565b81518110612a8257612a826151b4565b60209081029190910181019190915260808a0151015181612aa48860036151a1565b612aaf9060056151a1565b81518110612abf57612abf6151b4565b602090810291909101015260808901516040015181612adf8860036151a1565b612aea9060066151a1565b81518110612afa57612afa6151b4565b602090810291909101015260808901516060015181612b1a8860036151a1565b612b259060076151a1565b81518110612b3557612b356151b4565b602090810291909101015260a08901515181612b528860036151a1565b612b5d9060086151a1565b81518110612b6d57612b6d6151b4565b60209081029190910181019190915260a08a0151015181612b8f8860036151a1565b612b9a9060096151a1565b81518110612baa57612baa6151b4565b602090810291909101015260a08901516040015181612bca8860036151a1565b612bd590600a6151a1565b81518110612be557612be56151b4565b602090810291909101015260a08901516060015181612c058860036151a1565b612c1090600b6151a1565b81518110612c2057612c206151b4565b602002602001018181525050612c4081604051602001611a45919061538e565b9150612c4b82612d59565b6040805160208101869052929750909550612c669101611a45565b91505f612c7283612d59565b50959a949950949750909550919350505050565b5f5f5f612c91614fb1565b8581526101008581018051516020808501919091528151810151604080860191909152825181015160608087019190915292518301516080860152610120808a0180515160a0880152805184015160c080890191909152815184015160e089015290518501519587019590955293890180515194860194909452835182015161014086015283518101516101608601529251909101516101808401529051612d3f91611a45918491016153c3565b9150612d4a82612d59565b90979096509194509092505050565b5f80826fffffffffffffffffffffffffffffffff8116608082901c612d7d82611f4a565b9450612d8881611f4a565b9350505050915091565b5f612d9e84600761480c565b90507f183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f80000005f612dff612df9612dd3856003611f9a565b610593612dee612de38b5f61480c565b6105938c601c61480c565b6105938b601b61480c565b83611f68565b9050612e80612e75612e5c612e43612e2a85610598612e1f8d600261480c565b6105938e601b61480c565b610598612e388c600361480c565b6105938d601c61480c565b610598612e518b600461480c565b6105938c601d61480c565b610598612e6a8a600561480c565b6105938b601e61480c565b61059888600161480c565b9050612e9f81610598612e94866001611f9a565b6105938a602661480c565b9050612eab8184611f68565b9050612eb78185611f68565b8552505f9050612ef1612ee7612edc612ed188601b61480c565b61059889601e61480c565b6105b688602361480c565b610598875f61480c565b9050612f0281610593846002611f9a565b9050612f1381610593846001611f9a565b9050612f1f8183611f68565b9050612f2b8184611f68565b9050808460015b60200201525050505050565b5f5f5f612f74612f6a612f5289601b61480c565b610598612f608b601161480c565b8a60600151611f68565b8760800151611f81565b9050612fad81610593612fa3612f8b8b601c61480c565b610598612f998d601261480c565b8c60600151611f68565b8960800151611f81565b9050612fd281610593612fa3612fc48b601d61480c565b610598612f998d601361480c565b9050612ff781610593612fa3612fe98b601e61480c565b610598612f998d601461480c565b92505f905061301b612f6a61300d89601b61480c565b610598612f608b600d61480c565b905061304081610593612fa36130328b601c61480c565b610598612f998d600e61480c565b905061306581610593612fa36130578b601d61480c565b610598612f998d600f61480c565b905061308a81610593612fa361307c8b601e61480c565b610598612f998d601061480c565b91505f90506130b16130ab6130a089601f61480c565b6105988a601961480c565b84611f68565b90506130e6816105b66130e06130c88b602761480c565b6105986130d68d601a61480c565b8c60a00151611f68565b85611f68565b90506130f28185611f68565b6040860152505f6131156130e061310a89601a61480c565b6105938a602761480c565b606090950194909452505050505050565b5f5f61318461316c61315461313f612fa38a601561480c565b61059861314d8b601661480c565b8a51611f68565b6105986131628a601761480c565b8960200151611f68565b61059861317a89601861480c565b8860400151611f68565b91505f6131bb6131a261319889601b61480c565b8860800151611f81565b6105986131b08a600361480c565b6105938b602361480c565b90505f6131e46131cc89601c61480c565b6105986131d98b5f61480c565b6105938c602461480c565b90505f61320e6131f58a601d61480c565b6105986132038c600161480c565b6105938d602561480c565b905061324d61323561322785610598868d5f0151611f68565b610598848c60200151611f68565b6105986132438c600461480c565b8b60400151611f68565b93505050505f6132616130ab88602061480c565b90505f6132726130ab89602061480c565b90505f6132aa6132916132868b602261480c565b6105988c600661480c565b6105b661329f8c602261480c565b6105938d600661480c565b90505f6132ce6132c86132bd8789611f68565b6105938d602061480c565b83611f9a565b90506132da8188611f68565b90505f6133026132f46132ee8d600661480c565b87611f68565b6105b66132ee8e602161480c565b60808a018390529050808960055b60200201525050505050505050505050565b5f61332e5f6001611f9a565b90505f61333c5f6002611f9a565b90505f61334a5f6003611f9a565b90505f61336661335b88601c61480c565b6105b689601b61480c565b90505f61338261337789601d61480c565b6105b68a601c61480c565b90505f61339e6133938a601e61480c565b6105b68b601d61480c565b90505f6133ba6133af8b602361480c565b6105b68c601e61480c565b9050836133cb81610593818b611f81565b90506133db81610593878a611f81565b90506133eb816105938789611f81565b90506133fc816105938d600861480c565b9050613408818a611f68565b60c08b0152508261341d81610593818b611f81565b905061342d81610593868a611f81565b905061343d816105938689611f81565b905061344e816105938d600861480c565b905061345a818a611f68565b60e08b0152508161346f81610593818b611f81565b905061347f81610593858a611f81565b905061348f816105938589611f81565b90506134a0816105938d600861480c565b90506134ac818a611f68565b6101008b015250806134c281610593818b611f81565b90506134d281610593848a611f81565b90506134e2816105938489611f81565b90506134f3816105938d600861480c565b90506134ff818a611f68565b9050808a6009613310565b6135436040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61354e84601c61480c565b815261355b84601d61480c565b602082015261356b84602361480c565b604082015261357b84602661480c565b606082015261358b84602561480c565b608082015261359b84602461480c565b60a08201525f6135ac85600261480c565b90505f6135b9865f61480c565b90505f6135cd8460400151855f0151611f9a565b90505f6135e285602001518660200151611f68565b606086015190915086905f906135f89080611f68565b90505f61361661361089602001518a60600151611f68565b88611f68565b90505f61363561362e8a60a001518b60400151611f81565b8a51611f81565b90506136446132ee8288611f68565b905061366561365f6136596124b18487611f9a565b84611f81565b83611f81565b905061368d6136826136778387611f68565b6105938f600961480c565b61059360018a611f9a565b6101408c015250505050602085015160808601515f916136ac91611f81565b90505f6136ca6136c0886060015188611f68565b8860200151611f9a565b90505f6136ee6136da8487611f68565b6105986130e08b60a001518c5f0151611f9a565b905061371661370b613700838c611f68565b6105938e600961480c565b610593600189611f9a565b6101608b0152505f91506137379050613730836011611f81565b8751611f68565b90505f6137448384611f81565b90506137508182611f81565b90505f61375e836009611f68565b90506137876137816130ab61377a8b60a001518c5f0151611f81565b8b51611f81565b82611f9a565b60c089018190525f906137a29061361090613677908d611f68565b90506137b58b600a602002015182611f81565b6101408c0152505086515f92506137dc9150613730906137d59080611f81565b8851611f81565b90505f61381c6137f7836105938a5f01518b60a00151611f9a565b60208901516105b69061380a9080611f81565b6105938b602001518c60800151611f81565b905061383989600b6020020151610598613610613677858d611f68565b89600b602002015250505050505050505050565b6138e1604051806102c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6139166138fd6138f287601b61480c565b61059388602461480c565b61059861390b88602361480c565b61059389601c61480c565b815261395b61395061393761392c88601b61480c565b61059389601e61480c565b61059861394589601c61480c565b6105938a601d61480c565b6105b687602561480c565b6040820181905261397090600160441b611f68565b60408201819052613986906105b687602661480c565b6040820181905281516139999190611f81565b604082018190526139af9061059387600561480c565b604082015280516139c490600160441b611f68565b8082526139e4906105986139d988602361480c565b61059389602461480c565b80825260208201819052613a00906105b6612ed188601d61480c565b60208201819052613a169061059387600461480c565b6020820152805160608201819052613a339061059887601e61480c565b60608201819052613a57906105b6613a4c88602561480c565b61059889602661480c565b60608201819052613a6c90610593875f61480c565b8160600181815250505f613a95613a8b83602001518460400151611f81565b8360600151611f81565b9050613aa68161059388600361480c565b9050613abe613ab687602461480c565b614000611f68565b60808301819052613ad49061059888602361480c565b60808301819052613ae790614000611f68565b60808301819052613afd9061059888601d61480c565b60808301819052613b1090614000611f68565b60808301819052613b269061059888601c61480c565b60808301819052613b3990614000611f68565b60808301819052613b4f9061059888601b61480c565b60808301819052613b65906105b688601e61480c565b60808301819052613b7b9061059388600561480c565b6080830152613b8e613ab687602561480c565b60a08301819052613ba49061059888602461480c565b60a08301819052613bb790614000611f68565b60a08301819052613bcd9061059888602361480c565b60a08301819052613be090614000611f68565b60a08301819052613bf69061059888601e61480c565b60a08301819052613c0990614000611f68565b60a08301819052613c1f9061059888601d61480c565b60a08301819052613c35906105b688602661480c565b60a08301819052613c4a90610593885f61480c565b60a0830181905260808301515f91613c629190611f81565b9050613c738161059389600461480c565b9050613c8d613c8388601d61480c565b8760400151611f68565b60c08401819052613ca6906105986131628a601c61480c565b60c08401819052613cc690610598613cbf8a601b61480c565b8951611f68565b60c08401819052613cdc9061059889600161480c565b60c0840181905260e08401819052613cf9906105b689601e61480c565b60c0840152613d0c61335b88602361480c565b610140840152613d2b613d2088602661480c565b6105b689601e61480c565b610120840152610140830151613d5090613d459080611f68565b846101400151611f9a565b610280840152610140830151613d9290613d8790613d809061059360015f51602061540c5f395f51905f526151c8565b6001611f81565b846101200151611f68565b6101608401819052613dc990613dbb90610593613db08b600261480c565b6105938c600361480c565b6105936132ee8a600a61480c565b6101a0860152610280830151613deb90613dbb90610593613db08b600261480c565b6101c086015260c0830151613e1390610593613e088a600261480c565b6105938b600361480c565b6101e08401525f613e32613e2889601e61480c565b8560e00151611f9a565b9050613e416137818283611f68565b6101a0850152613e5561317a89602561480c565b6101008501819052613e7990610598613e6f8b602461480c565b8a60200151611f68565b6101008501819052613e939061059861314d8b602361480c565b610100850152613eb2613ea789602661480c565b856101000151611f9a565b6101008501525f613ec76133938a602561480c565b9050613f1b613ef5612df9613d8088610140015160015f51602061540c5f395f51905f5261059391906151c8565b610593613d8088610100015160015f51602061540c5f395f51905f5261059391906151c8565b610180860152610100850151613f4090613f359080611f68565b866101000151611f9a565b6101c0860152610180850151613f7390613f5f906105938c600761480c565b610593613f6d8c600a61480c565b89611f68565b6101e0880152610280850151613f9290613f5f906105938c600761480c565b6102008801526101c0850151613fb190613f5f906105938c600761480c565b6102208801526101a0850151613fcc906105938b600761480c565b610200860152613feb613fe08a602461480c565b6105b68b601c61480c565b61022086015261014085015161402a906133939061401f90613d809061059360015f51602061540c5f395f51905f526151c8565b876102200151611f68565b61024086018190526101e0860151610260870181905261406191610598906105936140568e600561480c565b6105938f600261480c565b610260860181905260c08601516140849190610598906105936140568e5f61480c565b610260860181905261020086015161409c9190611f81565b61026086018190526140b2906136599086611f81565b6102a086018190526140cc90610593613f6d8c600a61480c565b6102a0860181905287600c6020020152505050505050505050565b61415d6040518061022001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b61417661416b85601b61480c565b61059886600261480c565b815261419161418685601c61480c565b61059886600361480c565b60208201526141af6141a485601d61480c565b61059886600461480c565b60408201526141cd6141c285601e61480c565b61059886600561480c565b606082015280516141ff906141f8906141f1906141ea9080611f68565b8451611f68565b8351611f68565b8251611f68565b6080820152602081015161423d90614233906142299061421f9080611f68565b8460200151611f68565b8360200151611f68565b8260200151611f68565b60a0820152604081015161427b90614271906142679061425d9080611f68565b8460400151611f68565b8360400151611f68565b8260400151611f68565b60c082015260608101516142b9906142af906142a59061429b9080611f68565b8460600151611f68565b8360600151611f68565b8260600151611f68565b60e0820152608081015160a08201516142d29190611f81565b61010082015260c081015160e08201516142ec9190611f81565b61012082015260a0810151614310906143059080611f81565b826101200151611f81565b61014082015260e0810151614334906143299080611f81565b826101000151611f81565b61016082015261012081015161434a9080611f81565b6101e0820181905261436b906143609080611f81565b826101600151611f81565b6101e08201526101008101516143819080611f81565b6101a082018190526143a2906143979080611f81565b826101400151611f81565b6101a082018190526101608201516143b991611f81565b6101808201526101408101516101e08201516143d59190611f81565b6101c08201526143e9612df985600b61480c565b61020082018190526102408401516101808301516144149261059891610593906105b68a602361480c565b83601260200201526144448360136020020151610598836102000151610593856101a001516105b68a602461480c565b83601360200201526144748360146020020151610598836102000151610593856101c001516105b68a602561480c565b83601460200201526144a48360156020020151610598836102000151610593856101e001516105b68a602661480c565b836015602002015250505050565b6145046040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60405180608001604052806145397f10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7611f4a565b81526020016145677f0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b611f4a565b81526020016145947e544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15611f4a565b81526020016145c27f222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b611f4a565b905290506145df6145d486601b61480c565b61059887600261480c565b61012083018190526146139061460890613d87906145fd9080611f68565b856101200151611f68565b836101200151611f68565b825261462085601c61480c565b602083015261463085601d61480c565b604083015261464085601e61480c565b60608301528151602083015161466891613a8b9161465e9190611f81565b8460400151611f81565b608083015261467b6130ab86600c61480c565b610140830152815161469c9061469290835f6107fa565b8360800151611f81565b60a08301526146c884601660200201516105988461014001516105938660a001516105b68b602361480c565b6102c085015260208201516146e390614692908360016107fa565b60c083015261470f84601760200201516105988461014001516105938660c001516105b68b602461480c565b6102e0850152604082015161472a90614692908360026107fa565b60e083015261475684601860200201516105988461014001516105938660e001516105b68b602561480c565b610300850152606082015161477190614692908360036107fa565b61010083015261479f84601960200201516105988461014001516105938661010001516105b68b602661480c565b846019612f32565b5f6147b3818481611fe5565b905060015b601a811015614805576147fb826105988684601a81106147da576147da6151b4565b6020020151866147eb6001876151c8565b601981106107fa576107fa6151b4565b91506001016147b8565b5092915050565b5f82826027811115614820576148206153f7565b60288110614830576148306151b4565b60200201519392505050565b604051806103c001604052805f81526020015f81526020015f815260200161487560405180604001604052805f81526020015f81525090565b815260200161489560405180604001604052805f81526020015f81525090565b81526020016148b560405180604001604052805f81526020015f81525090565b81526020016148d560405180604001604052805f81526020015f81525090565b81526020016148f560405180604001604052805f81526020015f81525090565b815260200161491560405180604001604052805f81526020015f81525090565b815260200161493560405180604001604052805f81526020015f81525090565b815260200161495560405180604001604052805f81526020015f81525090565b815260200161497560405180604001604052805f81526020015f81525090565b815260200161499560405180604001604052805f81526020015f81525090565b81526020016149b560405180604001604052805f81526020015f81525090565b81526020016149d560405180604001604052805f81526020015f81525090565b81526020016149f560405180604001604052805f81526020015f81525090565b8152602001614a1560405180604001604052805f81526020015f81525090565b8152602001614a3560405180604001604052805f81526020015f81525090565b8152602001614a5560405180604001604052805f81526020015f81525090565b8152602001614a7560405180604001604052805f81526020015f81525090565b8152602001614a9560405180604001604052805f81526020015f81525090565b8152602001614ab560405180604001604052805f81526020015f81525090565b8152602001614ad560405180604001604052805f81526020015f81525090565b8152602001614af560405180604001604052805f81526020015f81525090565b8152602001614b1560405180604001604052805f81526020015f81525090565b8152602001614b3560405180604001604052805f81526020015f81525090565b8152602001614b5560405180604001604052805f81526020015f81525090565b8152602001614b7560405180604001604052805f81526020015f81525090565b8152602001614b9560405180604001604052805f81526020015f81525090565b8152602001614bb560405180604001604052805f81526020015f81525090565b905290565b6040518061022001604052805f81526020015f81526020015f8152602001614bff60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c2b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c5760405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614c8360405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614caf60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614cdb60405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d0760405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d3360405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614d40614fd0565b8152602001614d4d614ffe565b8152602001614d5a61501d565b8152602001614d67614ed9565b8152602001614d9360405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001614bb560405180608001604052805f81526020015f81526020015f81526020015f81525090565b604051806101000160405280614dfe6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8152602001614e0b614e9b565b8152602001614e18614ed9565b8152602001614e25614ed9565b81526020015f81526020015f81526020015f81526020015f81525090565b604051806108c001604052806046906020820280368337509192915050565b604051806108c001604052806046905b604080518082019091525f8082526020820152815260200190600190039081614e725790505090565b6040518061032001604052806019906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b604051806103800160405280601c906020820280368337509192915050565b6040518061052001604052806029906020820280368337509192915050565b60405180610da00160405280606d906020820280368337509192915050565b604051806103a00160405280601d906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b604051806103400160405280601a906020820280368337509192915050565b604051806101a00160405280600d906020820280368337509192915050565b604051806103800160405280601c905b614fe8614f73565b815260200190600190039081614fe05790505090565b6040518061050001604052806028906020820280368337509192915050565b604051806103600160405280601b905b61505460405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020019060019003908161502d5790505090565b5f5f5f5f6040858703121561507d575f5ffd5b843567ffffffffffffffff811115615093575f5ffd5b8501601f810187136150a3575f5ffd5b803567ffffffffffffffff8111156150b9575f5ffd5b8760208284010111156150ca575f5ffd5b60209182019550935085013567ffffffffffffffff8111156150ea575f5ffd5b8501601f810187136150fa575f5ffd5b803567ffffffffffffffff811115615110575f5ffd5b8760208260051b8401011115615124575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611f6257611f62615132565b5f5f8585111561516b575f5ffd5b83861115615177575f5ffd5b5050820193919092039150565b80356020831015611f62575f19602084900360031b1b1692915050565b80820180821115611f6257611f62615132565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611f6257611f62615132565b5f600182016151ec576151ec615132565b5060010190565b5f8183825b60098110156152175781518352602092830192909101906001016151f8565b5050506101208201905092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261524957615249615227565b500490565b5f8183825b6029811015615272578151835260209283019290910190600101615253565b5050506105208201905092915050565b5f8183825b606d8110156152a6578151835260209283019290910190600101615287565b505050610da08201905092915050565b5f8183825b601d8110156152da5781518352602092830192909101906001016152bb565b5050506103a08201905092915050565b5f8183825b600581101561530e5781518352602092830192909101906001016152ef565b50505060a08201905092915050565b5f8261532b5761532b615227565b500690565b5f8161533e5761533e615132565b505f190190565b5f82518060208501845e5f920191825250919050565b5f6020828403121561536b575f5ffd5b81518015158114611936575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81515f90829060208501835b828110156153b857815184526020938401939091019060010161539a565b509195945050505050565b5f8183825b600d8110156153e75781518352602092830192909101906001016153c8565b5050506101a08201905092915050565b634e487b7160e01b5f52602160045260245ffdfe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220ee2249dee80348a1fc7d41f1cb707dcef01aa6d65ad37ba294c7e89235101de564736f6c634300081b0033";
5
5
  /**
6
6
  * HonkVerifier link references.
7
7
  */
8
8
  export const HonkVerifierLinkReferences = {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9ua1ZlcmlmaWVyQnl0ZWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9nZW5lcmF0ZWQvSG9ua1ZlcmlmaWVyQnl0ZWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxzNDBDQUFzNDBDLENBQUM7QUFDMzYwQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEVBQVcsQ0FBQyJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9ua1ZlcmlmaWVyQnl0ZWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9nZW5lcmF0ZWQvSG9ua1ZlcmlmaWVyQnl0ZWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRywwNDBDQUEwNDBDLENBQUM7QUFDLzYwQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEVBQVcsQ0FBQyJ9
@@ -65,10 +65,6 @@ export declare const IERC20Abi: readonly [{
65
65
  readonly type: "error";
66
66
  readonly name: "FeeMath__InvalidFeeAssetPriceModifier";
67
67
  readonly inputs: readonly [];
68
- }, {
69
- readonly type: "error";
70
- readonly name: "FeeMath__InvalidProvingCostModifier";
71
- readonly inputs: readonly [];
72
68
  }, {
73
69
  readonly type: "error";
74
70
  readonly name: "GovernanceProposer__CanOnlyExecuteProposalInPast";
@@ -821,62 +817,42 @@ export declare const IERC20Abi: readonly [{
821
817
  readonly type: "error";
822
818
  readonly name: "Rollup__NonZeroL2Fee";
823
819
  readonly inputs: readonly [];
824
- }, {
825
- readonly type: "error";
826
- readonly name: "Rollup__NotClaimingCorrectEpoch";
827
- readonly inputs: readonly [{
828
- readonly name: "expected";
829
- readonly type: "uint256";
830
- readonly internalType: "Epoch";
831
- }, {
832
- readonly name: "actual";
833
- readonly type: "uint256";
834
- readonly internalType: "Epoch";
835
- }];
836
- }, {
837
- readonly type: "error";
838
- readonly name: "Rollup__NotInClaimPhase";
839
- readonly inputs: readonly [{
840
- readonly name: "currentSlotInEpoch";
841
- readonly type: "uint256";
842
- readonly internalType: "uint256";
843
- }, {
844
- readonly name: "claimDuration";
845
- readonly type: "uint256";
846
- readonly internalType: "uint256";
847
- }];
848
820
  }, {
849
821
  readonly type: "error";
850
822
  readonly name: "Rollup__NothingToPrune";
851
823
  readonly inputs: readonly [];
852
824
  }, {
853
825
  readonly type: "error";
854
- readonly name: "Rollup__ProofRightAlreadyClaimed";
855
- readonly inputs: readonly [];
856
- }, {
857
- readonly type: "error";
858
- readonly name: "Rollup__QuoteExpired";
826
+ readonly name: "Rollup__SlotAlreadyInChain";
859
827
  readonly inputs: readonly [{
860
- readonly name: "currentSlot";
828
+ readonly name: "lastSlot";
861
829
  readonly type: "uint256";
862
830
  readonly internalType: "Slot";
863
831
  }, {
864
- readonly name: "quoteSlot";
832
+ readonly name: "proposedSlot";
865
833
  readonly type: "uint256";
866
834
  readonly internalType: "Slot";
867
835
  }];
868
836
  }, {
869
837
  readonly type: "error";
870
- readonly name: "Rollup__SlotAlreadyInChain";
838
+ readonly name: "Rollup__StartAndEndNotSameEpoch";
871
839
  readonly inputs: readonly [{
872
- readonly name: "lastSlot";
840
+ readonly name: "start";
873
841
  readonly type: "uint256";
874
- readonly internalType: "Slot";
842
+ readonly internalType: "Epoch";
875
843
  }, {
876
- readonly name: "proposedSlot";
844
+ readonly name: "end";
877
845
  readonly type: "uint256";
878
- readonly internalType: "Slot";
846
+ readonly internalType: "Epoch";
879
847
  }];
848
+ }, {
849
+ readonly type: "error";
850
+ readonly name: "Rollup__StartIsNotBuildingOnProven";
851
+ readonly inputs: readonly [];
852
+ }, {
853
+ readonly type: "error";
854
+ readonly name: "Rollup__StartIsNotFirstBlockOfEpoch";
855
+ readonly inputs: readonly [];
880
856
  }, {
881
857
  readonly type: "error";
882
858
  readonly name: "Rollup__TimestampInFuture";
@@ -1 +1 @@
1
- {"version":3,"file":"IERC20Abi.d.ts","sourceRoot":"","sources":["../generated/IERC20Abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAilDZ,CAAC"}
1
+ {"version":3,"file":"IERC20Abi.d.ts","sourceRoot":"","sources":["../generated/IERC20Abi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAijDZ,CAAC"}