@settlemint/solidity-attestation-service
Version:
Smart contract set to use the Ethereum Attestation Service in SettleMint
1 lines • 162 kB
JSON
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"eas","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract EAS"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CustomSchemaRegistry"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testRegisterSchema","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f5561658c90816100348239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a9254e414610a32575080631ed7831c146109a85780632ade3880146107985780633e5e3c231461070e5780633f7286f41461068457806366d9a9a0146105455780637b1039991461050f5780638150864d146104dd57806385226c81146104525780638613f9e6146103ab578063916a17c6146102f4578063b0464fdc1461023d578063b5508aa9146101b3578063ba414fa61461018e578063e20c9f71146100f35763fa7626d4146100ce575f80fd5b346100f057806003193601126100f057602060ff601f54166040519015158152f35b80fd5b50346100f057806003193601126100f05760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106101625761015e8561015281870382610d94565b60405191829182610b70565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161013b565b50346100f057806003193601126100f05760206101a9611194565b6040519015158152f35b50346100f057806003193601126100f0576019546101d081610dd5565b916101de6040519384610d94565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610220576040518061015e8782610c57565b60016020819261022f85610ded565b81520192019201919061020b565b50346100f057806003193601126100f057601c5461025a81610dd5565b916102686040519384610d94565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106102aa576040518061015e8782610cd4565b600260206001926040516102bd81610d78565b73ffffffffffffffffffffffffffffffffffffffff86541681526102e2858701610ef0565b83820152815201920192019190610295565b50346100f057806003193601126100f057601d5461031181610dd5565b9161031f6040519384610d94565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b838310610361576040518061015e8782610cd4565b6002602060019260405161037481610d78565b73ffffffffffffffffffffffffffffffffffffffff8654168152610399858701610ef0565b8382015281520192019201919061034c565b503461044e575f60031936011261044e57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561044e576040517ff7fe347700000000000000000000000000000000000000000000000000000000815260016004820152600160248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561044357610435575080f35b61044191505f90610d94565b005b6040513d5f823e3d90fd5b5f80fd5b3461044e575f60031936011261044e57601a5461046e81610dd5565b9061047c6040519283610d94565b808252601a5f9081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106104c0576040518061015e8782610c57565b6001602081926104cf85610ded565b8152019201920191906104ab565b3461044e575f60031936011261044e57602073ffffffffffffffffffffffffffffffffffffffff815416604051908152f35b3461044e575f60031936011261044e57602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051908152f35b3461044e575f60031936011261044e57601b5461056181610dd5565b9061056f6040519283610d94565b808252602082019081601b5f527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc15f915b83831061064957848660405191829160208301906020845251809152604083019060408160051b85010192915f905b8282106105de57505050500390f35b91936020610639827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06001959799849503018652885190836106298351604084526040840190610bbf565b9201519084818403910152610c02565b96019201920185949391926105cf565b6002602060019260405161065c81610d78565b61066586610ded565b8152610672858701610ef0565b838201528152019201920191906105a0565b3461044e575f60031936011261044e5760405180602060175491828152019060175f527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15905f5b8181106106e25761015e8561015281870382610d94565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016106cb565b3461044e575f60031936011261044e5760405180602060185491828152019060185f527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e905f5b81811061076c5761015e8561015281870382610d94565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201610755565b3461044e575f60031936011261044e57601e546107b481610dd5565b906107c26040519283610d94565b808252602082019081601e5f527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3505f915b83831061091057848660405191829160208301906020845251809152604083019060408160051b85010192915f905b82821061083157505050500390f35b91939092947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc09082030182528451906020604082019273ffffffffffffffffffffffffffffffffffffffff81511683520151916040602083015282518091526060820190602060608260051b8501019401925f5b8281106108c75750505050506020806001929601920192018594939192610822565b9091929394602080610903837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087600196030189528951610bbf565b97019501939291016108a5565b60405161091c81610d78565b73ffffffffffffffffffffffffffffffffffffffff835416815260018301805461094581610dd5565b916109536040519384610d94565b81835260208301905f5260205f20905f905b83821061098b5750505050600192826020928360029501528152019201920191906107f3565b60016020819261099a86610ded565b815201930191019091610965565b3461044e575f60031936011261044e5760405180602060165491828152019060165f527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289905f5b818110610a065761015e8561015281870382610d94565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016109ef565b3461044e575f60031936011261044e576109ad80820182811067ffffffffffffffff821117610b4357829161126e833903905ff08015610443577fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff00601f549260081b1691161780601f556040519061493c9081830183811067ffffffffffffffff821117610b435773ffffffffffffffffffffffffffffffffffffffff8492602094611c1b853960081c1681520301905ff080156104435773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff000000000000000000000000000000000000000060205416176020555f80f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60206040818301928281528451809452019201905f5b818110610b935750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101610b86565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b818110610c1f5750505090565b82517fffffffff0000000000000000000000000000000000000000000000000000000016845260209384019390920191600101610c12565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610c8957505050505090565b9091929394602080610cc5837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951610bbf565b97019301930191939290610c7a565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610d0657505050505090565b9091929394602080610d69837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190610c02565b97019301930191939290610cf7565b6040810190811067ffffffffffffffff821117610b4357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610b4357604052565b67ffffffffffffffff8111610b435760051b60200190565b90604051915f8154908160011c9260018316928315610ee6575b602085108414610eb9578487528693908115610e795750600114610e35575b50610e3392500383610d94565b565b90505f9291925260205f20905f915b818310610e5d575050906020610e33928201015f610e26565b6020919350806001915483858901015201910190918492610e44565b60209350610e339592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f610e26565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b93607f1693610e07565b90604051918281549182825260208201905f5260205f20925f905b80600783011061110757610e339454918181106110d1575b81811061109b575b818110611065575b81811061102f575b818110610ff9575b818110610fc3575b818110610f8e575b10610f61575b500383610d94565b7fffffffff000000000000000000000000000000000000000000000000000000001681526020015f610f59565b9260206001917fffffffff0000000000000000000000000000000000000000000000000000000085831b168152019301610f53565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560401b168152019301610f4b565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301610f43565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560801b168152019301610f3b565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560a01b168152019301610f33565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560c01b168152019301610f2b565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560e01b168152019301610f23565b9160089193506101006001917fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e0820152019401920185929391610f0b565b60085460ff1680156111a35790565b506040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610443575f9161123b575b50151590565b90506020813d602011611265575b8161125660209383610d94565b8101031261044e57515f611235565b3d915061124956fe60e08060405234603e576001608052600360a0525f60c05261096a9081610043823960805181610576015260a051816105a1015260c051816105cc0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806354fd4d501461053957806360d7a278146101ac5763a2ea7c6e1461003a575f80fd5b346101a85760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a85760608060405161007881610703565b5f81525f60208201525f604082015201526004355f525f60205260405f206002604051916100a583610703565b8054835260ff600182015473ffffffffffffffffffffffffffffffffffffffff8116602086015260a01c161515604084015201906040515f928054906100ea8261075e565b80845291600181169081156101625750600114610128575b50506101138161012494038261071f565b6060820152604051918291826106b2565b0390f35b9093505f5260205f205f905b84821061014c57508101602001925061011381610102565b6001816020925483858701015201910190610134565b610124965084925060209150927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00610113941682840152151560051b8201019450610102565b5f80fd5b346101a85760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a85760043567ffffffffffffffff81116101a857366023820112156101a857806004013567ffffffffffffffff81116101a85736602482840101116101a8576024359073ffffffffffffffffffffffffffffffffffffffff82168092036101a857604435918215158093036101a8576040519161025583610703565b5f835260208301918252604083019384525f602061027283610742565b92610280604051948561071f565b80845280602483860199018937830101527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000610317601560206060870198858a52865189511515604051968793858501995180918b5e84019260601b168483015260f81b603482015203017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff581018452018261071f565b51902092835f525f60205260405f205461051157600291848452845f525f60205260405f20918451835573ffffffffffffffffffffffffffffffffffffffff600184019251167fffffffffffffffffffffff00000000000000000000000000000000000000000074ff000000000000000000000000000000000000000084549351151560a01b1692161717905501925192835167ffffffffffffffff81116104e4576103c3825461075e565b601f811161049f575b50806020958690601f831160011461043f575f92610434575b50505f198260011b9260031b1c19161790555b817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e604051806104293395826106b2565b0390a3604051908152f35b0151905086806103e5565b5f85815282812093601f1916905b8181106104885750908460019594939210610470575b505050811b0190556103f8565b01515f1960f88460031b161c19169055868080610463565b92938960018192878601518155019501930161044d565b825f5260205f20601f830160051c810191602084106104da575b601f0160051c01905b8181106104cf57506103cc565b5f81556001016104c2565b90915081906104b9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f23369fa6000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101a8575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a857610124602061067d600161059a7f00000000000000000000000000000000000000000000000000000000000000006107af565b81846105c57f00000000000000000000000000000000000000000000000000000000000000006107af565b81806105f07f00000000000000000000000000000000000000000000000000000000000000006107af565b9260405199878b985191829101848a015e8701907f2e0000000000000000000000000000000000000000000000000000000000000083830152805192839101602183015e0101907f2e0000000000000000000000000000000000000000000000000000000000000084830152805192839101600283015e01015f838201520301601f19810183528261071f565b6040519182916020835260208301905b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b60a0606061070093602084528051602085015273ffffffffffffffffffffffffffffffffffffffff60208201511660408501526040810151151582850152015191608080820152019061068d565b90565b6080810190811067ffffffffffffffff8211176104e457604052565b90601f601f19910116810190811067ffffffffffffffff8211176104e457604052565b67ffffffffffffffff81116104e457601f01601f191660200190565b90600182811c921680156107a5575b602083101461077857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f169161076d565b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000082101561090c575b806d04ee2d6d415b85acef8100000000600a9210156108f1575b662386f26fc100008110156108dd575b6305f5e1008110156108cc575b6127108110156108bd575b60648110156108af575b10156108a4575b600a5f1960216001850194601f1961085961084388610742565b97610851604051998a61071f565b808952610742565b013660208801378501015b01917f30313233343536373839616263646566000000000000000000000000000000008282061a835304801561089f575f19600a9192610864565b505090565b600190910190610829565b606460029104930192610822565b61271060049104930192610818565b6305f5e1006008910493019261080d565b662386f26fc1000060109104930192610800565b6d04ee2d6d415b85acef8100000000602091049301926107f0565b50604091507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000081046107d656fea264697066735822122046152d3f6306df679331568a064e87493b0cabcfd94fbd4242ec4fdd62c2c92064736f6c634300081b00336101e0806040523461032c5760208161493c80380380916100208285610330565b83398101031261032c57516001600160a01b0381169081810361032c576040519161004c604084610330565b60038352602083016245415360e81b81526040519061006c604083610330565b600582526020820190640312e332e360dc1b82526001608052600360a0525f60c05261009786610353565b610180526100a4836104d5565b6101a05285519020918261014052519020806101605246610100526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261011060c082610330565b51902060e052306101205282516001600160401b03811161031857600254600181811c9116801561030e575b60208210146102fa57601f8111610297575b506020601f821160011461023457819293945f92610229575b50508160011b915f199060031b1c1916176002555b1561021a576101c05260405161432e908161060e8239608051816108dc015260a05181610907015260c05181610932015260e05181613712015261010051816137cf015261012051816136e301526101405181613761015261016051816137870152610180518161075b01526101a0518161078701526101c0518181816101e401528181611e6601528181612186015281816125d00152612d2e0152f35b6311a1e69760e01b5f5260045ffd5b015190505f80610167565b601f1982169060025f52805f20915f5b81811061027f57509583600195969710610267575b505050811b0160025561017c565b01515f1960f88460031b161c191690555f8080610259565b9192602060018192868b015181550194019201610244565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c810191602084106102f0575b601f0160051c01905b8181106102e5575061014e565b5f81556001016102d8565b90915081906102cf565b634e487b7160e01b5f52602260045260245ffd5b90607f169061013c565b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b601f909101601f19168101906001600160401b0382119082101761031857604052565b908151602081105f146103cd575090601f81511161038d57602081519101516020821061037e571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610318575f54600181811c911680156104cb575b60208210146102fa57601f8111610499575b50602092601f821160011461043a57928192935f9261042f575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f80610417565b601f198216935f8052805f20915f5b8681106104815750836001959610610469575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061045c565b91926020600181928685015181550194019201610449565b5f8052601f60205f20910160051c810190601f830160051c015b8181106104c057506103fd565b5f81556001016104b3565b90607f16906103eb565b908151602081105f14610500575090601f81511161038d57602081519101516020821061037e571790565b6001600160401b03811161031857600154600181811c91168015610603575b60208210146102fa57601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c19161760015560ff90565b015190505f8061054b565b601f1982169360015f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60015f52601f60205f20910160051c810190601f830160051c015b8181106105f85750610531565b5f81556001016105eb565b90607f169061051f56fe60806040526004361015610011575f80fd5b5f3560e01c80630eabf66014610edb57806312b11a1714610ea157806313893f6114610e3057806317d7de7c14610d485780632d0335ab14610d035780633c04271514610c1157806344adc90e14610b325780634692626714610af25780634cb7e9e514610a215780634d003070146109f757806354fd4d50146108bd57806379f7573a1461082c57806384b0196e14610743578063954115251461050e578063a3112a64146104c3578063a6d4dbc7146103c2578063b469318d14610367578063b83010d31461032d578063cf190f3414610302578063d45c4435146102ce578063e30bb5631461029a578063e71ff3651461022a578063ed24911d14610208578063f10b5cc8146101b85763f17325e71461012c575f80fd5b60206003193601126101b45760043567ffffffffffffffff81116101b45780600401604060031983360301126101b45760206101a481936101ab93610186610172611732565b92610181602436920184611797565b611675565b61018f836114fd565b52610199826114fd565b503491339135612562565b01516114fd565b51604051908152f35b5f80fd5b346101b4575f6003193601126101b457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101b4575f6003193601126101b45760206102226136cc565b604051908152f35b346101b45760206003193601126101b45760043567ffffffffffffffff81116101b45761025b9036906004016110f9565b9067ffffffffffffffff4216915f5b81811061027c57602084604051908152f35b806102948561028e6001948688611558565b3561349b565b0161026a565b346101b45760206003193601126101b45760206102c46004355f52600460205260405f2054151590565b6040519015158152f35b346101b45760206003193601126101b4576004355f526005602052602067ffffffffffffffff60405f205416604051908152f35b346101b45760206003193601126101b457602067ffffffffffffffff42166102228160043533612348565b346101b4575f6003193601126101b45760206040517fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e758152f35b346101b45760406003193601126101b45773ffffffffffffffffffffffffffffffffffffffff61039561114f565b165f52600660205260405f206024355f52602052602067ffffffffffffffff60405f205416604051908152f35b6101006003193601126101b4576040516103db81611300565b6004358082526103ea366113f5565b602083015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c3601126101b45760405161042581611365565b60643560ff811681036101b4578152608435602082015260a4356040820152604083015260c43573ffffffffffffffffffffffffffffffffffffffff811681036101b45780606084015260e43567ffffffffffffffff811681036101b457836104959160806104c1960152611b1f565b61049d611933565b6104a6366113f5565b6104af826114fd565b526104b9816114fd565b503492611e1b565b005b346101b45760206003193601126101b4576104dc611a04565b506004355f52600460205261050a6104f660405f20611a4e565b6040519182916020835260208301906111ff565b0390f35b60206003193601126101b45760043567ffffffffffffffff81116101b45761053a9036906004016110f9565b90610544826117eb565b915f915f1982019083345b84821061056f5761050a6105638789613433565b60405191829182611193565b61057f82868599969897996112c0565b9461058d6020870187611873565b9390918415801561072b575b610703575f9996604089019460608a01968a359960808c01359967ffffffffffffffff8b16809b14159e5b83811015610694578f908e6105e98c6105e38d8560051b810190611797565b926119b0565b831015610667576105f98e6117ca565b936101b4578f908f9060019561064c73ffffffffffffffffffffffffffffffffffffffff9261063b610661976040519761063289611300565b88523690611675565b6020870152369060608902016114aa565b60408501521660608301526080820152612414565b016105c4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b509a8d9e506106d1949c50839a50600198506106cb6106da9698889f6106c39060209a9d9796959d14966117ca565b9336916118c7565b90612cbd565b9586519061151e565b940180516106e8898961150a565b526106f3888861150a565b505151019501909395929161054f565b7f947d5a84000000000000000000000000000000000000000000000000000000005f5260045ffd5b5061073960408901896119b0565b9050851415610599565b346101b4575f6003193601126101b4576107fe61077f7f0000000000000000000000000000000000000000000000000000000000000000613e65565b61050a6107ab7f0000000000000000000000000000000000000000000000000000000000000000613edd565b61080c604051916107bd6020846113ba565b5f83525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e087019061112a565b90858203604087015261112a565b904660608501523060808501525f60a085015283820360c08501526111cc565b346101b45760206003193601126101b457600435335f52600360205260405f20549081811115610895577f57b09af877df9068fd60a69d7b21f5576b8b38955812d6ae4ac52942f1e38fb791604091335f52600360205280835f205582519182526020820152a1005b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101b4575f6003193601126101b45761050a60206109e360016109007f0000000000000000000000000000000000000000000000000000000000000000613547565b818461092b7f0000000000000000000000000000000000000000000000000000000000000000613547565b81806109567f0000000000000000000000000000000000000000000000000000000000000000613547565b9260405199878b985191829101848a015e8701907f2e0000000000000000000000000000000000000000000000000000000000000083830152805192839101602183015e0101907f2e0000000000000000000000000000000000000000000000000000000000000084830152805192839101600283015e01015f838201520301601f1981018352826113ba565b60405191829160208352602083019061112a565b346101b45760206003193601126101b457602067ffffffffffffffff42166102228160043561349b565b60206003193601126101b45760043567ffffffffffffffff81116101b457610a4d9036906004016110f9565b5f19810191905f90345b818310610a6057005b610a6b838386611833565b60208101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112156101b45781019182359267ffffffffffffffff84116101b457602001928060061b360384136101b45760019382610ae492610aea95610add8c8b14943393369161143b565b903561213a565b9061151e565b920191610a57565b60606003193601126101b4576104c1610b09611933565b610b12366113f5565b610b1b826114fd565b52610b25816114fd565b5034903390600435611e1b565b60206003193601126101b45760043567ffffffffffffffff81116101b457610b5e9036906004016110f9565b90610b68826117eb565b915f9134905f925f198101905b808510610b895761050a6105638789613433565b9091929394610b99868386611833565b906020820191610ba98382611873565b90501561070357610be9610be089898885610bd9610bcb60019a602099611873565b9390951494339336916118c7565b9035612cbd565b9788519061151e565b96018051610bf7898b61150a565b52610c02888a61150a565b50515101950193929190610b75565b60206003193601126101b45760043567ffffffffffffffff81116101b457806004019060e060031982360301126101b457604051610c4e81611300565b823592838252602483019384359467ffffffffffffffff86116101b457610cfb6101ab95610ce26101a495610ccf60209a98610c918c9a60043691880101611675565b8a820152610ca236604487016114aa565b6040820152610cc560c460a4870196610cba88611172565b6060850152016114e8565b6080820152612414565b610181610cda611732565b953692611797565b610ceb846114fd565b52610cf5836114fd565b506117ca565b903492612562565b346101b45760206003193601126101b45773ffffffffffffffffffffffffffffffffffffffff610d3161114f565b165f526003602052602060405f2054604051908152f35b346101b4575f6003193601126101b4576040515f600254610d6881611568565b8084529060018116908115610dee5750600114610d90575b61050a836109e3818503826113ba565b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610dd4575090915081016020016109e3610d80565b919260018160209254838588010152019101909291610dbc565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506109e39050610d80565b346101b45760206003193601126101b45760043567ffffffffffffffff81116101b457610e619036906004016110f9565b9067ffffffffffffffff4216915f5b818110610e8257602084604051908152f35b80610e9b85610e946001948688611558565b3533612348565b01610e70565b346101b4575f6003193601126101b45760206040517ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768152f35b60206003193601126101b45760043567ffffffffffffffff81116101b457610f079036906004016110f9565b5f198101915f91345b818410610f1957005b610f248483856112c0565b60a0813603126101b457604051610f3a81611300565b81358152602082013567ffffffffffffffff81116101b457820136601f820112156101b457610f7090369060208135910161143b565b9060208101918252604083013567ffffffffffffffff81116101b457830136601f820112156101b457803590610fa5826113dd565b91610fb360405193846113ba565b808352602060608185019202830101913683116101b457602001905b8282106110df5750505060408201818152610fff6080610ff160608801611172565b9660608601978852016114e8565b9360808401948552519384519283159081156110d3575b50610703575f5b8381106110605750505050611058928460019593610ae493519073ffffffffffffffffffffffffffffffffffffffff8c8c149451169161213a565b930192610f10565b6001906110cd8651611072838a61150a565b5161107e84885161150a565b5173ffffffffffffffffffffffffffffffffffffffff8c51169067ffffffffffffffff88511692604051946110b286611300565b85526020850152604084015260608301526080820152611b1f565b0161101d565b9050518314158c611016565b60206060916110ee36856114aa565b815201910190610fcf565b9181601f840112156101b45782359167ffffffffffffffff83116101b4576020808501948460051b0101116101b457565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101b457565b359073ffffffffffffffffffffffffffffffffffffffff821682036101b457565b60206040818301928281528451809452019201905f5b8181106111b65750505090565b82518452602093840193909201916001016111a9565b90602080835192838152019201905f5b8181106111e95750505090565b82518452602093840193909201916001016111dc565b906101406101206112bd93805184526020810151602085015267ffffffffffffffff604082015116604085015267ffffffffffffffff606082015116606085015267ffffffffffffffff608082015116608085015260a081015160a085015273ffffffffffffffffffffffffffffffffffffffff60c08201511660c085015273ffffffffffffffffffffffffffffffffffffffff60e08201511660e0850152610100810151151561010085015201519181610120820152019061112a565b90565b91908110156106675760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61813603018212156101b4570190565b60a0810190811067ffffffffffffffff82111761131c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761131c57604052565b6060810190811067ffffffffffffffff82111761131c57604052565b60c0810190811067ffffffffffffffff82111761131c57604052565b610140810190811067ffffffffffffffff82111761131c57604052565b90601f601f19910116810190811067ffffffffffffffff82111761131c57604052565b67ffffffffffffffff811161131c5760051b60200190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60409101126101b4576040519061142c82611349565b60243582526044356020830152565b929192611447826113dd565b9361145560405195866113ba565b602085848152019260061b8201918183116101b457925b8284106114795750505050565b6040848303126101b4576020604091825161149381611349565b86358152828701358382015281520193019261146c565b91908260609103126101b4576040516114c281611365565b8092803560ff811681036101b45760409182918452602081013560208501520135910152565b359067ffffffffffffffff821682036101b457565b8051156106675760200190565b80518210156106675760209160051b010190565b9190820391821161152b57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b91908110156106675760051b0190565b90600182811c921680156115af575b602083101461158257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611577565b5f92918154916115c883611568565b808352926001811690811561161d57506001146115e457505050565b5f9081526020812093945091925b838310611603575060209250010190565b6001816020929493945483858701015201910191906115f2565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b67ffffffffffffffff811161131c57601f01601f191660200190565b919060c0838203126101b4576040519061168e82611381565b819361169981611172565b83526116a7602082016114e8565b6020840152604081013580151581036101b457604084015260608101356060840152608081013567ffffffffffffffff81116101b45781019082601f830112156101b4578135926116f784611659565b9061170560405192836113ba565b848252602085850101116101b4575f60208560a09682889701838601378301015260808501520135910152565b6040805190919061174383826113ba565b6001815291601f1901825f5b82811061175b57505050565b60209060405161176a81611381565b5f81525f838201525f60408201525f6060820152606060808201525f60a08201528282850101520161174f565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41813603018212156101b4570190565b3573ffffffffffffffffffffffffffffffffffffffff811681036101b45790565b906117f5826113dd565b61180260405191826113ba565b828152601f1961181282946113dd565b01905f5b82811061182257505050565b806060602080938501015201611816565b91908110156106675760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156101b4570190565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101b4570180359067ffffffffffffffff82116101b457602001918160051b360383136101b457565b9291906118d3816113dd565b936118e160405195866113ba565b602085838152019160051b8101918383116101b45781905b838210611907575050505050565b813567ffffffffffffffff81116101b4576020916119288784938701611675565b8152019101906118f9565b6040805190919061194483826113ba565b6001815291601f1901825f5b82811061195c57505050565b60209060405161196b81611349565b5f81525f8382015282828501015201611950565b90611989826113dd565b61199660405191826113ba565b828152601f196119a682946113dd565b0190602036910137565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101b4570180359067ffffffffffffffff82116101b4576020019160608202360383136101b457565b60405190611a118261139d565b6060610120835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201525f60e08201525f6101008201520152565b906006610120604051611a608161139d565b611b0d8195805483526001810154602084015267ffffffffffffffff60028201548181166040860152818160401c16606086015260801c166080840152600381015460a084015273ffffffffffffffffffffffffffffffffffffffff60048201541660c084015260ff600582015473ffffffffffffffffffffffffffffffffffffffff811660e086015260a01c161515610100840152611b0660405180968193016115b9565b03846113ba565b0152565b5f19811461152b5760010190565b6080810167ffffffffffffffff8151168015159081611cc9575b50611ca1578173ffffffffffffffffffffffffffffffffffffffff611c026020611c729501519260408101519460608201948486511692519160208251920151845f52600360205267ffffffffffffffff60405f2092835493611b9b85611b11565b90555116926040519460208601967fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e75885260408701526060860152608085015260a084015260c083015260e082015260e08152611bfa610100826113ba565b5190206137f5565b915116611c6d6020840151611c5f60ff60408701519651166040519687936020850191926041937fff00000000000000000000000000000000000000000000000000000000000000928452602084015260f81b1660408201520190565b03601f1981018552846113ba565b613836565b15611c7957565b7f8baa579f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f1ab7da6b000000000000000000000000000000000000000000000000000000005f5260045ffd5b905067ffffffffffffffff4216115f611b39565b519081151582036101b457565b6020818303126101b45780519067ffffffffffffffff82116101b45701906080828203126101b457604051916080830183811067ffffffffffffffff82111761131c5760405280518352602081015173ffffffffffffffffffffffffffffffffffffffff811681036101b4576020840152611d6760408201611cdd565b604084015260608101519067ffffffffffffffff82116101b4570181601f820112156101b457805190611d9982611659565b92611da760405194856113ba565b828452602083830101116101b457815f9260208093018386015e83010152606082015290565b90611dd7826113dd565b611de460405191826113ba565b828152601f19611df482946113dd565b01905f5b828110611e0457505050565b602090611e0f611a04565b82828501015201611df8565b9190604051907fa2ea7c6e0000000000000000000000000000000000000000000000000000000082528360048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561212f575f9261210b575b508151156120bb5792835190611eab82611dcd565b93611eb58361197f565b954267ffffffffffffffff16905f5b858110611edf57505050505050916112bd93916001936139f4565b611ee9818361150a565b519081515f52600460205260405f20918254156120e357866001840154036120bb57600583015473ffffffffffffffffffffffffffffffffffffffff8716908173ffffffffffffffffffffffffffffffffffffffff8216036120935760a01c60ff161561206b57600284019167ffffffffffffffff835460801c16612043577ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f615602073ffffffffffffffffffffffffffffffffffffffff8f8f88612030918f99936120068f9d61200160019f60c098907fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff77ffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b611a4e565b612010848461150a565b5261201b838361150a565b5061202a83888b01519261150a565b5261150a565b510151169251604051908152a401611ec4565b7f905e7107000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f157bd4c3000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4ca88867000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fbf37b20e000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fc5723b51000000000000000000000000000000000000000000000000000000005f5260045ffd5b6121289192503d805f833e61212081836113ba565b810190611cea565b905f611e96565b6040513d5f823e3d90fd5b949392916040517fa2ea7c6e0000000000000000000000000000000000000000000000000000000081528660048201525f8160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561212f575f9161232e575b508051156120bb5782516121c981611dcd565b926121d38261197f565b944267ffffffffffffffff16905f5b8481106121f95750505050506112bd9596506139f4565b612203818361150a565b519081515f52600460205260405f208054156120e3578d6001820154036120bb57600581015473ffffffffffffffffffffffffffffffffffffffff8716908173ffffffffffffffffffffffffffffffffffffffff8216036120935760a01c60ff161561206b57600282019367ffffffffffffffff855460801c16612043578f92602073ffffffffffffffffffffffffffffffffffffffff60c08f8f899061231b926120068f9861200160019f9a7ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f6159b907fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff77ffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b510151169251604051908152a4016121e2565b61234291503d805f833e61212081836113ba565b5f6121b6565b73ffffffffffffffffffffffffffffffffffffffff1691825f52600660205260405f2090825f528160205267ffffffffffffffff60405f2054166123ec5767ffffffffffffffff91835f5260205260405f208282167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000082541617905516917f92a1f7a41a7c585a8b09e25b195e225b1d43248daca46b0faf9e0792777a22295f80a4565b7fec9d6eeb000000000000000000000000000000000000000000000000000000005f5260045ffd5b6080810167ffffffffffffffff8151168015159081612535575b50611ca1578173ffffffffffffffffffffffffffffffffffffffff611c026020611c7295015192604081015194606082019484865116925191858251169167ffffffffffffffff602082015116906040810151151560608201519060a060808401516020815191012093015193885f52600360205267ffffffffffffffff60405f20968754976124bd89611b11565b90555116966040519860208a019a7ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768c5260408b015260608a0152608089015260a088015260c087015260e08601526101008501526101208401526101408301526101608201526101608152611bfa610180826113ba565b905067ffffffffffffffff4216115f61242e565b6040519061255682611349565b60606020835f81520152565b929161256c612549565b50815193612578612549565b946125828161197f565b6020870152604051917fa2ea7c6e0000000000000000000000000000000000000000000000000000000083528060048401525f8360248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561212f575f93612ca1575b508251156120bb5761261482949592611dcd565b9361261e8161197f565b955f935b8285106126415750505050509161263c9391600193613c67565b815290565b9195999094989397612656898499959961150a565b519960208b019767ffffffffffffffff8951168015159081612c8c575b50612c645760408201511580612c57575b61206b5789988c6060810151915167ffffffffffffffff1691815173ffffffffffffffffffffffffffffffffffffffff1690604083015115159260800151936040519d8e6126d18161139d565b5f8152602001528d4267ffffffffffffffff1660408201526060015260808d015f905260a08d015260c08c015273ffffffffffffffffffffffffffffffffffffffff8a1660e08c01526101008b01526101208a01525f5b60208a015160c08b015160e08c01519060408d01518d606081015161010082015115159060a08301519261012001519360405196879660208801998a5260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016604088015260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016605487015260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016606886015260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016607085015260f81b6078840152607983015280516020819201609984015e81018460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166099820152036099017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe48101825260040161288990826113ba565b519020805f52600460205260405f2054156128ad575060010163ffffffff16612728565b91979d99939b929895949c9050999599818452815f52600460205260405f2084518155602085015160018201556129b36002820167ffffffffffffffff80604089015116167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000082541617815560608701517fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff000000000000000083549260401b16911617815567ffffffffffffffff6080880151167fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff77ffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b60a085810151600383015560c08601516004830180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92831617905560e08701516005840180546101008a01517fffffffffffffffffffffff000000000000000000000000000000000000000000909116929093169190911791151590921b74ff00000000000000000000000000000000000000001617905561012085015180519067ffffffffffffffff821161131c57612a886006840154611568565b601f8111612c13575b50909e9f9e8994939291602090601f8311600114612ba557600692915f9183612b9a575b50505f198260011b9260031b1c1916179101555b8d8c8c606084015180612b6f575b5086602073ffffffffffffffffffffffffffffffffffffffff95948794612b09848660019e61202a83612b219a61150a565b50612b198460a08901519261150a565b52015161150a565b5251166040519182527f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b35602073ffffffffffffffffffffffffffffffffffffffff891693a401939190612622565b92505050612b8a9193505f52600460205260405f2054151590565b156120e35786918d8c8c5f612ad7565b015190505f80612ab5565b90600684015f52805f20915f5b601f1985168110612bf8575091839160019383601f196006971610612be0575b505050811b01910155612ac9565b01515f1960f88460031b161c191690555f8080612bd2565b8183015184558d985060019093019260209283019201612bb2565b600684015f5260205f20601f840160051c810160208510612c50575b601f830160051c82018110612c45575050612a91565b5f8155600101612c2f565b5080612c2f565b5060408c01511515612684565b7f08e8b937000000000000000000000000000000000000000000000000000000005f5260045ffd5b905067ffffffffffffffff421610155f612673565b612cb69193503d805f833e61212081836113ba565b915f612600565b9290949391612cca612549565b50855193612cd6612549565b94612ce08161197f565b6020870152604051907fa2ea7c6e0000000000000000000000000000000000000000000000000000000082528260048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561212f575f92613417575b508151156120bb5792979091612d7384611dcd565b98612d7d8561197f565b945f935b818510612d995750505050509561263c949596613c67565b91959398949699909297612dad8a8461150a565b519a60208c019867ffffffffffffffff8a51168015159081613402575b50612c6457604081015115806133f5575b61206b578a998d6060810151915167ffffffffffffffff1691815173ffffffffffffffffffffffffffffffffffffffff1690604083015115159260800151936040519e8f90612e298261139d565b5f825260208201524267ffffffffffffffff166040820152606001528d608081015f905260a0015260c08d015273ffffffffffffffffffffffffffffffffffffffff8b1660e08d01526101008c01526101208b01525f5b60208b015160c08c015160e08d0151908d604081015190606081015161010082015115159060a08301519261012001519360405196879660208801998a5260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016604088015260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016605487015260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016606886015260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016607085015260f81b6078840152607983015280516020819201609984015e81018460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166099820152036099017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe481018252600401612fe290826113ba565b519020805f52600460205260405f205415613006575060010163ffffffff16612e80565b90509d979b9199929a949d9c909698939c808452805f52600460205260405f2091845183556020850151600184015561310e6002840167ffffffffffffffff80604089015116167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000082541617815560608701517fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff000000000000000083549260401b16911617815567ffffffffffffffff6080880151167fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff77ffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b60a0850151600384015573ffffffffffffffffffffffffffffffffffffffff60c08601511673fffffffffffffffffffffffffffffff