0 txs
18 calls
constructor
constructor(address _protocolRewards, address _weth)
functions
contractVersion
purefunction contractVersion() pure returns (string)
creatorRewardRecipient
viewfunction creatorRewardRecipient() view returns (address)
erc20
viewfunction erc20() view returns (address)
hasEnoughObservationCardinality
viewfunction hasEnoughObservationCardinality() view returns (bool, uint256)
PERCENTAGE_BASIS
viewfunction PERCENTAGE_BASIS() view returns (uint256)
percentageToBuyBurn
viewfunction percentageToBuyBurn() view returns (uint256)
pool
viewfunction pool() view returns (address)
protocolRewards
viewfunction protocolRewards() view returns (address)
REQUIRED_OBSERVATION_CARDINALITY
viewfunction REQUIRED_OBSERVATION_CARDINALITY() view returns (uint16)
SLIPPAGE
viewfunction SLIPPAGE() view returns (uint256)
TIME_WEIGHTED_PRICE_PERIOD
viewfunction TIME_WEIGHTED_PRICE_PERIOD() view returns (uint32)
weth
viewfunction weth() view returns (address)
ensureObservationCardinality
nonpayablefunction ensureObservationCardinality()
initialize
nonpayablefunction initialize(address _creatorRewardRecipient, address _pool, uint256 _percentageToBuyBurn)
pull
nonpayablefunction pull()
uniswapV3SwapCallback
nonpayablefunction uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes)
events
BuyBurn
event BuyBurn(uint256 amountERc20Received, uint256 amountERc20Burned, uint256 amountEthSpent, uint256 amountEthToCreator, uint256 totalEthReceived, bytes buyFailureError, bytes burnFailureError)
Initialized
event Initialized(address creatorRewardRecipient, address erc20, address pool, uint256 percentageToBuyBurn)
Initialized
event Initialized(uint64 version)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AmountOutLessThanMinimum
error AmountOutLessThanMinimum(uint256 amountOut, uint256 amountOutMinimum)
FailedInnerCall
error FailedInnerCall()
InvalidInitialization
error InvalidInitialization()
NotEnoughObservationCardinality
error NotEnoughObservationCardinality(uint256 requiredCardinality, uint256 currentCardinality)
NotInitializing
error NotInitializing()
OnlyPool
error OnlyPool()
OnlyProtocolRewardsOrWeth
error OnlyProtocolRewardsOrWeth()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60c03461018f57601f612f3138819003918201601f19168301916001600160401b0383118484101761019457808492604094855283398101031261018f57610052602061004b836101aa565b92016101aa565b6004805460ff191690556001600160a01b039182166080521660a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054604081901c60ff1661017e576002600160401b03196001600160401b03821601610115575b604051612d7290816101bf82396080518181816107820152818161088d0152818161105f015261172e015260a0518181816102f6015281816103bc015281816106b101528181610ab40152818161109c0152818161115c01526126170152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1386100b5565b63f92ee8a960e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361018f5756fe6080806040526004361015610025575b50361561001b57600080fd5b610023611048565b005b600090813560e01c90816316f0115b14610d7b575080631794bb3c146108ed5780631e8e1432146108b157806329df647914610842578063329eb8391461071057806336b4134a146106d55780633fc8cef3146106665780636630d7ea1461062c578063785e9e86146105da578063a0a8e46014610557578063a728505c1461051d578063e5ab334f146104e2578063e5b643271461049b578063ef4716471461044a578063fa461e331461021f5763fc10501f0361000f57346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d4578073ffffffffffffffffffffffffffffffffffffffff600254166040517f3850c7bd00000000000000000000000000000000000000000000000000000000815260e081600481855afa801561021457608061ffff91600a9386916101e5575b50015116106101775750f35b803b156101e2578180916024604051809481937f32148f67000000000000000000000000000000000000000000000000000000008352600a60048401525af180156101d7576101c35750f35b816101cd91610e2a565b6101d45780f35b80fd5b6040513d84823e3d90fd5b50fd5b610207915060e03d60e01161020d575b6101ff8183610e2a565b810190610edc565b3861016b565b503d6101f5565b6040513d85823e3d90fd5b50346101d45760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d45760043560243560443567ffffffffffffffff8111610446573660238201121561044657806004013567ffffffffffffffff8111610442573691016024011161043e5773ffffffffffffffffffffffffffffffffffffffff600254163303610416578282131561037257506040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810191909152602081604481857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff165af180156101d75761033c575b5080f35b6020813d60201161036a575b8161035560209383610e2a565b810103126103665761033890610ecf565b5080fd5b3d9150610348565b905081811361037f575080f35b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810191909152602081604481857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff165af180156101d75715610338576020813d60201161036a578161035560209383610e2a565b6004837f4b602735000000000000000000000000000000000000000000000000000000008152fd5b8280fd5b8480fd5b8380fd5b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d45773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d45760406104d4610fb0565b825191151582526020820152f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d45760206040516127108152f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d4576020604051603c8152f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d457506105d6604051610598604082610e2a565b600581527f302e302e310000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610dcb565b0390f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d457602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d4576020604051600a8152f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d45760206040516103e88152f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d45760017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060045416176004558073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803b156101e2578180916044604051809581937ff3fef3a30000000000000000000000000000000000000000000000000000000083523060048401528160248401525af1801561083557610825575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006004541660045561082247611132565b80f35b61082e91610e2a565b38816107f1565b50604051903d90823e3d90fd5b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d4576020600354604051908152f35b50346101d45760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d45760043573ffffffffffffffffffffffffffffffffffffffff81168091036103665760243573ffffffffffffffffffffffffffffffffffffffff811680910361043e57604435907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549260ff8460401c16159367ffffffffffffffff811680159081610d73575b6001149081610d69575b159081610d60575b50610d38578460017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008316177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610ce3575b50807fffffffffffffffffffffffff0000000000000000000000000000000000000000865416178555817fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255826003556040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610c79578691610cc4575b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff821614600014610c845750604051927fd21220a7000000000000000000000000000000000000000000000000000000008452602084600481865afa928315610c795773ffffffffffffffffffffffffffffffffffffffff6080947f8f2f06eb3e4facd106f36fbb8af56e828e047dbc83e6c3bc1109902e61cc5b5e968991610c4a575b505b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155604051938452602084015260408301526060820152a1610bb65780f35b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b610c6c915060203d602011610c72575b610c648183610e2a565b810190611106565b38610b6c565b503d610c5a565b6040513d88823e3d90fd5b9260809273ffffffffffffffffffffffffffffffffffffffff7f8f2f06eb3e4facd106f36fbb8af56e828e047dbc83e6c3bc1109902e61cc5b5e95610b6e565b610cdd915060203d602011610c7257610c648183610e2a565b38610a9c565b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005538610a08565b6004867ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b905015386109b5565b303b1591506109ad565b8691506109a3565b90503461036657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103665760209073ffffffffffffffffffffffffffffffffffffffff600254168152f35b919082519283825260005b848110610e155750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610dd6565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e6b57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b519073ffffffffffffffffffffffffffffffffffffffff82168203610ebb57565b600080fd5b519061ffff82168203610ebb57565b51908115158203610ebb57565b908160e0910312610ebb5760405190600060e0830167ffffffffffffffff811184821017610f8357604052610f1082610e9a565b835260208201518060020b8103610366576020840152610f3260408301610ec0565b6040840152610f4360608301610ec0565b6060840152610f5460808301610ec0565b608084015260a08201519060ff821682036101d4575060a0830152610f7b9060c001610ecf565b60c082015290565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600460e073ffffffffffffffffffffffffffffffffffffffff60025416604051928380927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa90811561103c5761ffff9160609160009161101d575b5001511690600a8210159190565b611036915060e03d60e01161020d576101ff8183610e2a565b3861100f565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633146110ee5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036110c457565b7fb1dffcc70000000000000000000000000000000000000000000000000000000060005260046000fd5b60ff60045416156110fb57565b61110434611132565b565b90816020910312610ebb575173ffffffffffffffffffffffffffffffffffffffff81168103610ebb5790565b60009061271061114460035483612533565b0473ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803b15610446576040517fd0e30db0000000000000000000000000000000000000000000000000000000008152848160048186865af1801561252857612514575b5083906060906111cb610fb0565b90156124e4575073ffffffffffffffffffffffffffffffffffffffff600254166fffffffffffffffffffffffffffffffff851660405161120b8582610e2a565b6002815260208101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08601368337603c611245826126aa565b5289611250826126e6565b528960405180937f883bdbfd00000000000000000000000000000000000000000000000000000000825260248201936020600484015251809452604482019093835b8181106124c2575050819293500381865afa908115611be55789908a92612395575b506112cb6112c1826126e6565b5160060b916126aa565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000831217611c2f5773ffffffffffffffffffffffffffffffffffffffff61132e81611326846126e6565b5116926126aa565b511690039073ffffffffffffffffffffffffffffffffffffffff8211611c2f5760060b90603c820560020b918a81129081612385575b50612335575b60201b77ffffffffffffffffffffffffffffffffffffffff000000001615612308576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa90811561227b57859173ffffffffffffffffffffffffffffffffffffffff918c916122e9575b501603612286576040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481875afa90811561227b578a9161225c575b50905b60020b898112156122565761143c81612575565b905b620d89e882116121f8578a9060018316156121cf5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b16926002811661218e575b6004811661214d575b6008811661210c575b601081166120cb575b6020811661208a575b60408116612049575b60808116612008575b6101008116611fc7575b6102008116611f86575b6104008116611f45575b6108008116611f04575b6110008116611ec3575b6120008116611e82575b6140008116611e41575b6180008116611e00575b620100008116611dbf575b620200008116611d80575b620400008116611d16575b6208000016611cbf575b13611c65575b63ffffffff8160201c911615600014611c5c5760ff8a5b168101809111611c2f5773ffffffffffffffffffffffffffffffffffffffff9081166fffffffffffffffffffffffffffffffff8111611bfe578061159391612533565b9116841015611bf057906115a691612b77565b915b6040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115611be5579073ffffffffffffffffffffffffffffffffffffffff918a91611bc6575b501614908115611b9357604073ffffffffffffffffffffffffffffffffffffffff60c46401000276a45b8b845195869485937f128acb080000000000000000000000000000000000000000000000000000000085523060048601528960248601528d604486015216606484015260a060848401528160a48401525af1918289928a94611b58575b50611aac5750505050506116956125a2565b905b81511561184457509060206116fe7fc66f81fea2bc16396c6e018060629d6262e44c739d649d4e6cc1d1c6154fd01f936116d084612600565b856040519488865288858701526040860152806060860152608085015260e060a085015260e0840190610dcb565b85838203918260c0860152520190a15b80611717575050565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff835416813b15610446579060c4849260405194859384927ff7f8266f00000000000000000000000000000000000000000000000000000000845260048401527ffca54a4a00000000000000000000000000000000000000000000000000000000602484015260606044840152602960648401527f436f696e7461672073706c697420746f2063726561746f72207265776172642060848401527f726563697069656e74000000000000000000000000000000000000000000000060a48401525af180156101d757611832575050565b61183d828092610e2a565b6101d45750565b9091928492606073ffffffffffffffffffffffffffffffffffffffff60015416803b15611aa857878080926024604051809581937f42966c680000000000000000000000000000000000000000000000000000000083528b60048401525af19182611a93575b5050611a8957506118b96125a2565b9173ffffffffffffffffffffffffffffffffffffffff60015416611935888060405160208101907fa9059cbb00000000000000000000000000000000000000000000000000000000825261dead602482015289604482015260448152611920606482610e2a565b519082865af161192e6125a2565b9083612c9f565b8051908115159182611a62575b5050611a3757505b8251156119cd57916119b76119c5927fc66f81fea2bc16396c6e018060629d6262e44c739d649d4e6cc1d1c6154fd01f96959461198689612600565b80985b604051978897885260208801526040870152886060870152608086015260e060a086015260e0850190610dcb565b9083820360c0850152610dcb565b0390a161170e565b858103818111611a0a576119c5927fc66f81fea2bc16396c6e018060629d6262e44c739d649d4e6cc1d1c6154fd01f969594926119b79298611989565b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7f5274afe7000000000000000000000000000000000000000000000000000000008852600452602487fd5b8192509060209181010312611a85576020611a7d9101610ecf565b153880611942565b8880fd5b919350829361194a565b81611a9d91610e2a565b611aa85787386118aa565b8780fd5b909192939450600014611b495750611ac390612575565b80916123288102908082046123281490151715611b1c57612710900490818110611aee575050611697565b7f23fd80cf000000000000000000000000000000000000000000000000000000008752600452602452604485fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b611b539150612575565b611ac3565b925092506040823d604011611b8b575b81611b7560409383610e2a565b81010312611a8557602082519201519238611683565b3d9150611b68565b604073ffffffffffffffffffffffffffffffffffffffff60c473fffd8963efd1fc6a506488495d951d5263988d25611626565b611bdf915060203d602011610c7257610c648183610e2a565b386115fc565b6040513d8b823e3d90fd5b611bf991612ad4565b6115a6565b80611c08916126f6565b9116841015611c215790611c1b916129b4565b916115a8565b611c2a9161283e565b611c1b565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60ff6001611550565b8015611c92577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04611539565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b916b048a170391f7dc42444e8fa280820292508115918304141715611ce9578a9060801c91611533565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b929091506d2216e584f5fa1ea926041bedfe988102908082046d2216e584f5fa1ea926041bedfe981490151715611d535760801c918b9190611529565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b929091506e5d6af8dedb81196699c329225ee6048102908082046e5d6af8dedb81196699c329225ee6041490151715611d5357908b9160801c9261151e565b929091506f09aa508b5b7a84e1c677de54f3e99bc98102908082046f09aa508b5b7a84e1c677de54f3e99bc91490151715611d5357908b9160801c92611513565b929091506f31be135f97d08fd981231505542fcfa68102908082046f31be135f97d08fd981231505542fcfa61490151715611d5357908b9160801c92611508565b929091506f70d869a156d2a1b890bb3df62baf32f78102908082046f70d869a156d2a1b890bb3df62baf32f71490151715611d5357908b9160801c926114fe565b929091506fa9f746462d870fdf8a65dc1f90e061e58102908082046fa9f746462d870fdf8a65dc1f90e061e51490151715611d5357908b9160801c926114f4565b929091506fd097f3bdfd2022b8845ad8f792aa58258102908082046fd097f3bdfd2022b8845ad8f792aa58251490151715611d5357908b9160801c926114ea565b929091506fe7159475a2c29b7443b29c7fa6e889d98102908082046fe7159475a2c29b7443b29c7fa6e889d91490151715611d5357908b9160801c926114e0565b929091506ff3392b0822b70005940c7a398e4b70f38102908082046ff3392b0822b70005940c7a398e4b70f31490151715611d5357908b9160801c926114d6565b929091506ff987a7253ac413176f2b074cf7815e548102908082046ff987a7253ac413176f2b074cf7815e541490151715611d5357908b9160801c926114cc565b929091506ffcbe86c7900a88aedcffc83b479aa3a48102908082046ffcbe86c7900a88aedcffc83b479aa3a41490151715611d5357908b9160801c926114c2565b929091506ffe5dee046a99a2a811c461f1969c30538102908082046ffe5dee046a99a2a811c461f1969c30531490151715611d5357908b9160801c926114b8565b929091506fff2ea16466c96a3843ec78b326b528618102908082046fff2ea16466c96a3843ec78b326b528611490151715611d5357908b9160801c926114af565b929091506fff973b41fa98c081472e6896dfb254c08102908082046fff973b41fa98c081472e6896dfb254c01490151715611d5357908b9160801c926114a6565b929091506fffcb9843d60f6159c9db58835c9266448102908082046fffcb9843d60f6159c9db58835c9266441490151715611d5357908b9160801c9261149d565b929091506fffe5caca7e10e4e61c3624eaa0941cd08102908082046fffe5caca7e10e4e61c3624eaa0941cd01490151715611d5357908b9160801c92611494565b929091506ffff2e50f5f656932ef12357cf3c7fdcc8102908082046ffff2e50f5f656932ef12357cf3c7fdcc1490151715611d5357908b9160801c9261148b565b929091506ffff97272373d413259a46990580e213a8102908082046ffff97272373d413259a46990580e213a1490151715611d5357908b9160801c92611482565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611477565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b8061143e565b612275915060203d602011610c7257610c648183610e2a565b38611425565b6040513d8c823e3d90fd5b6040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa90811561227b578a916122ca575b5090611428565b6122e3915060203d602011610c7257610c648183610e2a565b386122c3565b612302915060203d602011610c7257610c648183610e2a565b386113e1565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008114611c2f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061136a565b603c91500760060b151538611364565b9150503d808a833e6123a78183610e2a565b8101906040818303126124be57805167ffffffffffffffff81116124945781019082601f830112156124945781516123de81612692565b926123ec6040519485610e2a565b81845260208085019260051b820101908582116124ba57602001915b81831061249c5750505060208101519067ffffffffffffffff821161249857019180601f8401121561249457825161243f81612692565b9361244d6040519586610e2a565b81855260208086019260051b82010192831161249057602001905b82821061247857505050386112b4565b6020809161248584610e9a565b815201910190612468565b8c80fd5b8a80fd5b8b80fd5b82518060060b81036124b657815260209283019201612408565b8e80fd5b8d80fd5b8980fd5b855163ffffffff1683526020958601958f955087945090920191600101611292565b7f5adc8d63000000000000000000000000000000000000000000000000000000008752600a600452602452604486fd5b8461252191959295610e2a565b92386111bd565b6040513d87823e3d90fd5b8181029291811591840414171561254657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f800000000000000000000000000000000000000000000000000000000000000081146125465760000390565b3d156125fb573d9067ffffffffffffffff8211610e6b57604051916125ef601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200184610e2a565b82523d6000602084013e565b606090565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690813b15610ebb57604051907f2e1a7d4d0000000000000000000000000000000000000000000000000000000082528160248160008096819560048401525af180156101d757612685575050565b8161268f91610e2a565b50565b67ffffffffffffffff8111610e6b5760051b60200190565b8051156126b75760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156126b75760400190565b91906000927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8282099082810292838084109303928084039314612834579085918368010000000000000000111561043e57680100000000000000009109946128075750780100000000000000000000000000000000000000000000000090828511900381810291818304149015171561254657600093612798600180612533565b806002039060028211611b1c57906127af91612533565b806002039060028211611b1c57906127c691612533565b806002039060028211611b1c57906127dd91612533565b806002039560028711612807575061280494956127f991612533565b920360401c17612533565b90565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b50505060401c9150565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8170010000000000000000000000000000000009918160801b918280851094039380850394146129a75783821115610ebb57819070010000000000000000000000000000000009811960018101809111612546576128d190831680930494600184806000030401908584119003612533565b9203041781600302600381048303612546576002186128f08184612533565b600203600281116125465761290491612533565b61290e8184612533565b600203600281116125465761292291612533565b61292c8184612533565b600203600281116125465761294091612533565b61294a8184612533565b600203600281116125465761295e91612533565b6129688184612533565b6002039060028211612546576129889161298191612533565b8093612533565b600203916002831161254657612804926129a191612533565b90612533565b5080925015610ebb570490565b91906000927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8282099082810292838084109303928084039314612aca5790859183700100000000000000000000000000000000111561043e57700100000000000000000000000000000000910994612807575070010000000000000000000000000000000090828511900381810291818304149015171561254657600093612a5e600180612533565b806002039060028211611b1c5790612a7591612533565b806002039060028211611b1c5790612a8c91612533565b806002039060028211611b1c5790612aa391612533565b80600203956002871161280757506128049495612abf91612533565b920360801c17612533565b50505060801c9150565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81780100000000000000000000000000000000000000000000000009918160c01b918280851094039380850394146129a75783821115610ebb578190780100000000000000000000000000000000000000000000000009811960018101809111612546576128d190831680930494600184806000030401908584119003612533565b91906000927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8282099082810292838084109303928084039314612c9557908591837801000000000000000000000000000000000000000000000000111561043e57780100000000000000000000000000000000000000000000000091099461280757506801000000000000000090828511900381810291818304149015171561254657600093612c29600180612533565b806002039060028211611b1c5790612c4091612533565b806002039060028211611b1c5790612c5791612533565b806002039060028211611b1c5790612c6e91612533565b80600203956002871161280757506128049495612c8a91612533565b920360c01c17612533565b50505060c01c9150565b90612cde5750805115612cb457805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580612d33575b612cef575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15612ce756fea264697066735822122056202fa576e29fa965439c5d68ad71a69bc118c6335afdbc8311c9fcdcf4618364736f6c634300081c00330000000000000000000000007777777f279eba3d3ad8f4e708545291a6fdba8b0000000000000000000000004200000000000000000000000000000000000006