-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathOptInServiceHints.json
More file actions
1 lines (1 loc) · 88.7 KB
/
OptInServiceHints.json
File metadata and controls
1 lines (1 loc) · 88.7 KB
1
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optInHint","inputs":[{"name":"optInService","type":"address","internalType":"address"},{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"optInHintInternal","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101c034610171576001600160401b03602082018181118382101761015d576040908082525f84528151938285018581108582111761015d5783526001855260208501603160f81b81523060805261005682610175565b926101409384526100668761030c565b926101609384525190209061010096828852519020610120948186524660c05280519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c08201968288109088111761015d5786905251902060a0523060e052610180915f83526101a0935f8552611b9d9687610443883960805187610571015260a05187611770015260c0518761182b015260e0518761173a015251866117bf015251856117e5015251846102fd015251836103260152518281816106c1015261104e01525181818161026e01526110a10152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b8051602090818110156101eb5750601f8251116101ad578082519201519080831061019f57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b03821161015d575f54926001938481811c91168015610302575b838210146102ee57601f81116102bb575b5081601f841160011461025957509282939183925f9461024e575b50501b915f199060031b1c1916175f5560ff90565b015192505f80610239565b919083601f1981165f8052845f20945f905b888383106102a15750505010610289575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061027c565b85870151885590960195948501948793509081019061026b565b5f805284601f845f20920160051c820191601f860160051c015b8281106102e357505061021e565b5f81550185906102d5565b634e487b7160e01b5f52602260045260245ffd5b90607f169061020d565b8051602090818110156103365750601f8251116101ad578082519201519080831061019f57501790565b9192916001600160401b03811161015d5760019182548381811c91168015610438575b828210146102ee57601f8111610405575b5080601f83116001146103a55750819293945f9261039a575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610383565b90601f19831695845f52825f20925f905b8882106103ee57505083859697106103d6575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f80806103c9565b8087859682949686015181550195019301906103b6565b835f5283601f835f20920160051c820191601f850160051c015b82811061042d57505061036a565b5f815501849061041f565b90607f169061035956fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220493097ed5d1de1aae304a21f1e5e49755a20a7ad3440a5bb7c08f97c4b9ec07d64736f6c63430008190033","sourceMap":"215:929:88:-:0;;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:929:88;;348:4:87;332:21;;3401:45:53;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;215:929:88;3542:22:53;;3528:36;;;;;;215:929:88;3591:25:53;;3574:42;;;;;3644:13;3627:30;;215:929:88;;4204:80:53;215:929:88;4204:80:53;;2079:95;;;;;;;;;;;;3644:13;332:21:87;2079:95:53;;;348:4:87;2079:95:53;;;;;4204:80;;3627:30;215:929:88;;;;;;;;;;;;;;;;4194:91:53;;2079:95;3667:48;348:4:87;3725:27:53;;1675:26:96;;-1:-1:-1;1675:26:96;;1711:30;;-1:-1:-1;1711:30:96;;215:929:88;;;;;;332:21:87;215:929:88;;;;;2079:95:53;215:929:88;;;;;3627:30:53;215:929:88;;;;;3725:27:53;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;-1:-1:-1;215:929:88;;;;;2914:340:49;215:929:88;;3059:2:49;;3037:24;;;3059:2;;;215:929:88;1854:2:49;215:929:88;;1840:16:49;1836:72;;215:929:88;;;;;2079:95:53;215:929:88;;;;;;1949:36:49;;3077:27;:::o;215:929:88:-;;;;;;;;;;1949:36:49;3077:27;:::o;1836:72::-;215:929:88;;;;1879:18:49;;;;;;;;;;;;215:929:88;;;;;;;;;;;;;;;;355:1;215:929;;;;;;1854:2:49;215:929:88;-1:-1:-1;;215:929:88;;;1879:18:49;;;;3033:215;215:929:88;-1:-1:-1;;;;;215:929:88;;;;355:1;215:929;;;;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:49;3195:42;:::o;215:929:88:-;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;355:1;215:929;;;355:1;215:929;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;355:1;215:929;1390:66:49;3195:42;:::o;215:929:88:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;;;;;;;;;;;;;;;;;;355:1;215:929;;;;;;;;;;;355:1;215:929;;;;;355:1;215:929;;;;;;;;2914:340:49;215:929:88;;3059:2:49;;3037:24;;;3059:2;;;215:929:88;1854:2:49;215:929:88;;1840:16:49;1836:72;;215:929:88;;;;;2079:95:53;215:929:88;;;;;;1949:36:49;;3077:27;:::o;3033:215::-;215:929:88;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;3033:215:49;215:929:88;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;-1:-1:-1;;;;215:929:88;;;;;;;;;;;;;1390:66:49;;3195:42::o;215:929:88:-;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;;-1:-1:-1;215:929:88;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:49;3195:42;:::o;215:929:88:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100f4578063530e1d43146100ef5780636d0fae4a146100ea5780638247a97c146100e557806384b0196e146100e05780639333fbda146100db57806393f79bc3146100d65780639a15d7a5146100d15780639f86fd85146100cc578063b1138ad1146100c7578063c4b5d62c146100c2578063ced44ba7146100bd578063d4610483146100b85763d4a63862146100b3575f80fd5b6107d6565b6107b4565b6106f0565b6106ac565b61068a565b6105f9565b610531565b610432565b6103db565b6102e5565b61029d565b610259565b6101f3565b610129565b600435906001600160a01b038216820361010f57565b5f80fd5b602435906001600160a01b038216820361010f57565b3461010f57604036600319011261010f5760206101556101476100f9565b61014f610113565b9061083f565b6040519015158152f35b9181601f8401121561010f5782359167ffffffffffffffff831161010f576020838186019501011161010f57565b90608060031983011261010f576001600160a01b0391600435838116810361010f5792602435908116810361010f579160443565ffffffffffff8116810361010f57916064359067ffffffffffffffff821161010f576101ef9160040161015f565b9091565b3461010f576020600161024961024f61023a61020e3661018d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b03953691610978565b91610bd6565b1614604051908152f35b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f57602036600319011261010f576102bf6102b96100f9565b33610ccf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461010f575f36600319011261010f5761037e6103217f000000000000000000000000000000000000000000000000000000000000000061123f565b61034a7f000000000000000000000000000000000000000000000000000000000000000061133d565b60405190610357826108d7565b5f825261038c602091604051958695600f60f81b875260e0602088015260e08701906102c1565b9085820360408701526102c1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103c457505050500390f35b8351855286955093810193928101926001016103b5565b3461010f57604036600319011261010f5760206104296103f96100f9565b610401610113565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b3461010f576104403661018d565b909165ffffffffffff8061045342611406565b16911690811061051f576104ff926104f06104f89260018060a01b0380891691825f5260026020526104988960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b519020611438565b923691610978565b9084610d25565b1561050d576102bf91610e01565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b3461010f57606036600319011261010f5761054a6100f9565b610552610113565b906044359065ffffffffffff8216820361010f576001600160a01b03927f0000000000000000000000000000000000000000000000000000000000000000841633036105e7576105c6936105c192165f52600360205260405f209060018060a01b03165f5260205260405f2090565b610f2c565b60408051941515855263ffffffff91909116602085015292915050f35b0390f35b604051637ca475e560e11b8152600490fd5b3461010f57604036600319011261010f576106126100f9565b60243567ffffffffffffffff811161010f575f916106358392369060040161015f565b90816040519283928337810184815203915af46106826106536109ae565b916106746040519384921515602084015260408084015260608301906102c1565b03601f19810183528261092b565b805190602001fd5b3461010f57602036600319011261010f576102bf6106a66100f9565b33611022565b3461010f575f36600319011261010f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461010f576106fe3661018d565b909165ffffffffffff8061071142611406565b16911690811061051f576107a6926104f06104f89260018060a01b0380891691825f5260026020526107568960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104e8816108f3565b1561050d576102bf91611022565b3461010f57602036600319011261010f576102bf6107d06100f9565b33610e01565b3461010f57608036600319011261010f576107ef6100f9565b6107f7610113565b906044356001600160a01b038116810361010f576064359065ffffffffffff8216820361010f576105e39361082b93610a1f565b6040519182916020835260208301906102c1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061087d57505060015f5b818060d01b03161490565b5f1990808281011161089d576001925f5260205f2001015460301c610872565b610b9f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176108d257604052565b6108a2565b6020810190811067ffffffffffffffff8211176108d257604052565b60c0810190811067ffffffffffffffff8211176108d257604052565b60a0810190811067ffffffffffffffff8211176108d257604052565b90601f8019910116810190811067ffffffffffffffff8211176108d257604052565b6040519061095a826108b6565b565b67ffffffffffffffff81116108d257601f01601f191660200190565b9291926109848261095c565b91610992604051938461092b565b82948184528183011161010f578281602093845f960137010152565b3d156109d8573d906109bf8261095c565b916109cd604051938461092b565b82523d5f602084013e565b606090565b5190811515820361010f57565b519063ffffffff8216820361010f57565b919082604091031261010f57610a1c6020610a15846109dd565b93016109ea565b90565b9392915f8060609665ffffffffffff604096875196602096639a15d7a560e01b888a015260018060a01b0380921660248a015216604488015216606486015260648552610a6b8561090f565b85519485610a9686820192639f86fd8560e01b845230602484015289604484015260648301906102c1565b0395610aaa601f199788810183528261092b565b51915afa50610ab76109ae565b8051810190848184840193031261010f57610ad38382016109dd565b90858101519067ffffffffffffffff821161010f57019082603f8301121561010f5783820151610b028161095c565b92610b0f8851948561092b565b8184528584019488838301011161010f57815f9289889301875e8401015215610b7d57908282610b4293510101906109fb565b9390610b4e5750505050565b610a1c93949550610b719051948592830191909163ffffffff6020820193169052565b0390810183528261092b565b8091505191821561010f5701fd5b9081602091031261010f57610a1c906109ea565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161089d57565b90600163ffffffff8093160191821161089d57565b91805115610cc55780602080610bf193518301019101610b8b565b91610bfc83826111eb565b92610c0d845165ffffffffffff1690565b9065ffffffffffff8085169216828114610cac5782119182610c4c575b5050610c3a57610a1c9250611656565b5050602001516001600160d01b031690565b909150610c598354610bb3565b63ffffffff831614918215610c72575b50505f80610c2a565b610ca4919250610c8d610c87610c9992610bc1565b856111eb565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610c69565b50505050602091909101516001600160d01b0316905090565b50610a1c91611656565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610d2f838361145e565b506004819592951015610ded57159384610dd7575b508315610d52575b50505090565b5f929350908291604051610d8a816106746020820194630b135d3f60e11b998a875260248401526040604484015260648301906102c1565b51915afa90610d976109ae565b82610dc9575b82610dad575b50505f8080610d4c565b90915060208180518101031261010f5760200151145f80610da3565b915060208251101591610d9d565b6001600160a01b0383811691161493505f610d44565b634e487b7160e01b5f52602160045260245ffd5b90610e3d610e3882610e238560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b6118d3565b9091506001600160d01b031615610ee85765ffffffffffff80610e5f42611406565b16911614610ed657610e97610e8882610e238560018060a01b03165f52600360205260405f2090565b610e9142611406565b90611994565b5050610ea38183610ccf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b906001820180921161089d57565b90604051610f15816108b6565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411610fb5575b610f479350846115f4565b908115610fa957610f6890610f5b83610bb3565b905f5260205f2001610f08565b91610fa2610f99610f936020610f84875165ffffffffffff1690565b9601516001600160d01b031690565b93610bb3565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b9192610fc0816114b6565b810390811161089d57610f4793855f5265ffffffffffff808360205f20015416908516105f14610ff1575091610f3c565b929150610ffd90610efa565b90610f3c565b9081602091031261010f57610a1c906109dd565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561119f575f916111b6575b50156111a4576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa91821561119f575f92611172575b505015611160576110e3818461083f565b61114e578061111961110a8493610e238760018060a01b03165f52600360205260405f2090565b61111342611406565b90611a9e565b50506111258185610ccf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b6111919250803d10611198575b611189818361092b565b810190611003565b5f806110d2565b503d61117f565b611017565b604051630fb9ff9560e41b8152600490fd5b6111cd9150833d851161119857611189818361092b565b5f61107f565b604051906111e0826108b6565b5f6020838281520152565b6112109161120a916111fb6111d3565b506112046111d3565b506116e2565b50610f08565b65ffffffffffff81511690602060018060d01b039101511660405191611235836108b6565b8252602082015290565b60ff811461125057610a1c9061170b565b506040515f80546001918160011c9260018316908115611333575b60209060208610831461131f578587528694602086019390811561130057506001146112a1575b505050610a1c9250038261092b565b9250936112ce5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b8285106112ea57505050610a1c9350015f8080611292565b86548585015295860195879550938101936112d2565b92505050610a1c9491925060ff19168252151560051b015f8080611292565b634e487b7160e01b5f52602260045260245ffd5b93607f169361126b565b60ff811461134e57610a1c9061170b565b506040516001805480821c915f908281169081156113fc575b60209060208610831461131f5785875286946020860193908115611300575060011461139c57505050610a1c9250038261092b565b9250936113ca60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b8285106113e657505050610a1c9350015f8080611292565b86548585015295860195879550938101936113ce565b93607f1693611367565b65ffffffffffff90818111611419571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b604290611443611737565b906040519161190160f01b8352600283015260228201522090565b815191906041830361148e576114879250602082015190606060408401519301515f1a90611851565b9192909190565b50505f9160029190565b81156114a2570490565b634e487b7160e01b5f52601260045260245ffd5b80156115ef578061158861158161157761156d61156361155961154f6115456001610a1c9a5f908b60801c806115e3575b508060401c806115d6575b508060201c806115c9575b508060101c806115bc575b508060081c806115af575b508060041c806115a2575b508060021c80611595575b50821c61158e575b811c1b61153e818b611498565b0160011c90565b61153e818a611498565b61153e8189611498565b61153e8188611498565b61153e8187611498565b61153e8186611498565b61153e8185611498565b8092611498565b90611922565b8101611531565b600291509101905f611529565b600491509101905f61151e565b600891509101905f611513565b601091509101905f611508565b602091509101905f6114fd565b604091509101905f6114f2565b9150506080905f6114e7565b505f90565b91905b8382106116045750505090565b909192808316906001818518811c830180931161089d57855f5265ffffffffffff808460205f20015416908516105f14611643575050925b91906115f7565b90949350810180911161089d579161163c565b908154905f829160058411611694575b6116719350846115f4565b8061167c5750505f90565b61168590610bb3565b905f5260205f20015460301c90565b919261169f816114b6565b810390811161089d5761167193855f5265ffffffffffff808360205f20015416908516105f146116d0575091611666565b9291506116dc90610efa565b90611666565b80548210156116f7575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f82116117255760405191611235836108b6565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611828575b15611792577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611822816108f3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611769565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118c8579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561119f575f516001600160a01b038116156118be57905f905f90565b505f906001905f90565b5050505f9160039190565b8054806118e45750505f905f905f90565b5f1990808281011161089d57611901925f5260205f200101610f08565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b908082101561192f575090565b905090565b8054680100000000000000008110156108d257611956916001820181556116e2565b91909161198157805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b8054908115611a7c576119bc6119b76119ac84610bb3565b835f5260205f200190565b610f08565b906119cd825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611a37946020946119fa610c99865165ffffffffffff1690565b03611a3c5750611a2991611a10611a1b92610bb3565b905f5260205f200190565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b9050611a6591611a5b611a4d61094d565b65ffffffffffff9093168352565b5f85830152611934565b611a29565b604051632520601d60e01b8152600490fd5b611a98929150611a8d611a4d61094d565b5f6020830152611934565b5f905f90565b8054908115611b4357611ab66119b76119ac84610bb3565b90611ac7825165ffffffffffff1690565b65ffffffffffff8581169491168410611a6a57611b2194602094611af4610c99865165ffffffffffff1690565b03611b275750611a2991611a10611b0a92610bb3565b660100000000000065ffffffffffff825416179055565b90600190565b9050611a6591611b38611a4d61094d565b600182860152611934565b611b60929150611b54611a4d61094d565b60016020830152611934565b5f9060019056fea2646970667358221220493097ed5d1de1aae304a21f1e5e49755a20a7ad3440a5bb7c08f97c4b9ec07d64736f6c63430008190033","sourceMap":"215:929:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:88;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;215:929:88;;;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:88;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;215:929:88;;;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1:96;215:929:88;1975:57:96;:22;215:929:88;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;215:929:88;1975:10:96;215:929:88;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;1975:22:96;215:929:88;;;;;;;;;;:::i;:::-;1975:57:96;;:::i;:::-;215:929:88;1975:62:96;215:929:88;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;;851:39:96;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;3493:5:96;215:929:88;;:::i;:::-;3481:10:96;3493:5;:::i;:::-;215:929:88;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;-1:-1:-1;;215:929:88;;;;:::o;:::-;;;;;;-1:-1:-1;;215:929:88;;;;;6099:41:53;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;215:929:88;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:53;215:929:88;;;;5625:4:53;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;6584:16:53;215:929:88;;;;;;;;;-1:-1:-1;;215:929:88;;;;;1214:77:96;215:929:88;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;215:929:88;;;-1:-1:-1;215:929:88;;;1214:77:96;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;1214:77:96;215:929:88;;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;215:929:88;;;1469:27:96;;;1465:83;;3164:88;215:929:88;4587:179:96;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;4713:6:96;215:929:88;;4713:18:96;215:929:88;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;4713:18:96;215:929:88;;;4644:98:96;215:929:88;4644:98:96;;215:929:88;1082:76:96;215:929:88;;;948:75:96;;215:929:88;;;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;4644:98;;;;;:::i;:::-;215:929:88;4617:139:96;;4587:179;:::i;:::-;215:929:88;;;;:::i;:::-;3164:88:96;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;215:929:88;;-1:-1:-1;;;3275:18:96;;215:929:88;;3275:18:96;1465:83;215:929:88;;-1:-1:-1;;;1519:18:96;;215:929:88;;1519:18:96;215:929:88;;;;;;-1:-1:-1;;215:929:88;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;215:929:88;449:5:87;215:929:88;;435:10:87;:19;431:71;;581:61:88;215:929;581:22;215:929;;-1:-1:-1;215:929:88;581:10;215:929;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;581:22;:61;:::i;:::-;215:929;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;431:71:87;215:929:88;;-1:-1:-1;;;477:14:87;;215:929:88;;477:14:87;215:929:88;;;;;;-1:-1:-1;;215:929:88;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:80;;;;477:31;416:25;;:::i;:::-;215:929:88;;;;;;;;;;477:31:80;;215:929:88;;;;;;;;;;;:::i;:::-;477:31:80;215:929:88;;477:31:80;;;;;;:::i;:::-;518:79;;;215:929:88;518:79:80;;215:929:88;;;;;;-1:-1:-1;;215:929:88;;;;2370:5:96;215:929:88;;:::i;:::-;2358:10:96;2370:5;:::i;215:929:88:-;;;;;;-1:-1:-1;;215:929:88;;;;;;758:37:96;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;:::i;:::-;;;;837:15:63;819:34;837:15;819:34;:::i;:::-;215:929:88;;;1469:27:96;;;1465:83;;2610:87;215:929:88;4587:179:96;215:929:88;;;;;;;;;;;;-1:-1:-1;215:929:88;4713:6:96;215:929:88;;4713:18:96;215:929:88;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;4713:18:96;215:929:88;;;4644:98:96;215:929:88;4644:98:96;;215:929:88;948:75:96;215:929:88;;;948:75:96;;215:929:88;;;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;;;215:929:88;948:75:96;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;215:929:88:-;;;;;;-1:-1:-1;;215:929:88;;;;2923:5:96;215:929:88;;:::i;:::-;2911:10:96;2923:5;:::i;215:929:88:-;;;;;;-1:-1:-1;;215:929:88;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;215:929:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;2099:134:96:-;-1:-1:-1;;;;;215:929:88;;;-1:-1:-1;215:929:88;;;2190:10:96;215:929:88;;;;;;;;;;;;;;;;;;;;;10303:8:61;;;:63;;2225:1:96;-1:-1:-1;10303:63:61;215:929:88;;;;;;2190:36:96;2099:134;:::o;10303:63:61:-;215:929:88;;;;;;;;;;2225:1:96;13267:109:91;-1:-1:-1;13267:109:91;215:929:88;-1:-1:-1;13267:109:91;;;215:929:88;;;10303:63:61;;215:929:88;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75:96;215:929:88;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;215:929:88;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;215:929:88;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;655:487::-;;;;-1:-1:-1;803:12:88;215:929;;;;;;;936:76;;;;;;;;;;215:929;;;;;;;;936:76;;;215:929;;;;;;;;;;;;936:76;;;;;:::i;:::-;215:929;;716:88:87;;215:929:88;716:88:87;;;;;;;;;783:4;936:76:88;716:88:87;;215:929:88;;;;;;;;;;;:::i;:::-;716:88:87;215:929:88;716:88:87;215:929:88;;716:88:87;;;;;;;;:::i;:::-;698:107;;;;;;;:::i;:::-;215:929:88;;857:45:87;;;;;;;;215:929:88;;;;;;857:45:87;;;215:929:88;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;916:8:87;912:175;;215:929:88;;;857:207;215:929;;857:207;;;;:::i;:::-;1075:61;;;;655:487;;;;:::o;1075:61::-;1108:17;215:929;;;;1108:17;215:929;;1108:17;;;;;215:929;;;;;;;;;;;;1108:17;;;;;;;;;:::i;912:175:87:-;215:929:88;;;;944:22:87;;;940:36;;990:87;;215:929:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:91:-;;215:929:88;;1946:17:91;1942:83;;215:929:88;2049:27:91;215:929:88;2049:27:91;215:929:88;;2049:27:91;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;215:929:88;;;;;;;;;;;;;;;;2148:22:91;;;2144:77;;2235:21;-1:-1:-1;2235:84:91;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:91;2342:17;215:929:88;-1:-1:-1;;;;;215:929:88;;:::o;2235:84:91:-;215:929:88;;;2269:16:91;215:929:88;;2269:16:91;:::i;:::-;215:929:88;;;2261:24:91;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;215:929:88;;;;;2289:23:91;215:929:88;;;;2289:29:91;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:91;2193:17;;;;215:929:88;-1:-1:-1;;;;;215:929:88;;-1:-1:-1;215:929:88;:::o;1942:83:91:-;1425:34;;;;:::i;4779:173:96:-;-1:-1:-1;;;;;215:929:88;;;-1:-1:-1;215:929:88;;;4876:6:96;215:929:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25:96;;-1:-1:-1;4920:25:96;4779:173::o;1039:368:55:-;1211:33;;;;:::i;:::-;215:929:88;;;;;;;;;;1274:35:55;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;215:929:88;;;;;;;;2041:60:55;;215:929:88;2041:60:55;;;;;;;;;;;;;;215:929:88;;;;;;;;;;;:::i;2041:60:55:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;215:929:88;;;2041:60:55;215:929:88;;;2187:29:55;;215:929:88;;;;2041:60:55;2187:29;215:929:88;2187:76:55;2129:134;;;;:42;215:929:88;;2041:60:55;215:929:88;;2152:19:55;;2129:42;;;1274:58;-1:-1:-1;;;;;215:929:88;;;;;1313:19:55;;-1:-1:-1;1274:58:55;;;215:929:88;;;;1283:26:55;215:929:88;;;;;1283:26:55;215:929:88;3991:467:96;;5260:30:91;4105:22:96;:15;;;215:929:88;;;;;;;;4105:10:96;215:929:88;;;;;;;4105:15:96;215:929:88;;;;;;;;;;;;;;;;4105:22:96;5260:30:91;:::i;:::-;215:929:88;;-1:-1:-1;;;;;;215:929:88;4161:16:96;4157:66;;215:929:88;837:15:63;819:34;837:15;819:34;:::i;:::-;215:929:88;;;4237:35:96;4233:89;;8167:38:61;4332:22:96;:15;;;215:929:88;;;;;;;;4105:10:96;215:929:88;;;;;;;4332:22:96;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;4411:5:96;;;;;;:::i;:::-;-1:-1:-1;;;;;215:929:88;;;;;4433:18:96;-1:-1:-1;;4433:18:96;3991:467::o;4233:89::-;215:929:88;;-1:-1:-1;;;4295:16:96;;;;;4157:66;215:929:88;;-1:-1:-1;;;4200:12:96;;;;;215:929:88;;3149:1:91;215:929:88;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:91:-;;215:929:88;;2880:15:91;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;215:929:88;3430:7:91;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;215:929:88;:::i;:::-;;3498:15:91;3505:7;215:929:88;13267:109:91;215:929:88;;;;;;;;3479:17:91;;215:929:88;-1:-1:-1;;;;;215:929:88;;;;3505:7:91;;:::i;:::-;215:929:88;;;;3498:15:91;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;215:929:88;;;;;;;3199:60:91;13267:109;;2838:11;13267:109;215:929:88;13267:109:91;;;2838:11;13267:109;;215:929:88;;;;;3013:55:91;3009:156;215:929:88;;;3088:10:91;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;215:929:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3512:473:96;215:929:88;;-1:-1:-1;;;3580:37:96;;;-1:-1:-1;;;;;215:929:88;;;3580:37:96;;;215:929:88;;;3512:473:96;3580:37;;215:929:88;3580:37:96;215:929:88;;;3590:12:96;215:929:88;;3580:37:96;;;;;;;-1:-1:-1;3580:37:96;;;3512:473;3579:38;;3575:84;;215:929:88;;3674:41:96;;;-1:-1:-1;;;;;215:929:88;;3580:37:96;3674:41;;215:929:88;3674:41:96;215:929:88;;;3684:14:96;215:929:88;;3674:41:96;;;;;;;-1:-1:-1;3674:41:96;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:61;3860:22:96;:15;;;;215:929:88;;;;;;;;4105:10:96;215:929:88;;;;;;;3860:22:96;819:34:63;837:15;819:34;:::i;:::-;8167:38:61;;:::i;:::-;3939:5:96;;;;;;:::i;:::-;215:929:88;;;3961:17:96;-1:-1:-1;3961:17:96;;3512:473::o;3775:75::-;215:929:88;;-1:-1:-1;;;3823:16:96;;3580:37;;3823:16;3669:96;215:929:88;;-1:-1:-1;;;3738:16:96;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:96;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;215:929:88;;-1:-1:-1;;;3640:8:96;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;215:929:88;;;;;;;:::i;:::-;-1:-1:-1;215:929:88;;;;;;;:::o;5573:258:91:-;215:929:88;5573:258:91;11308:22:61;5573:258:91;215:929:88;;:::i;:::-;;;;:::i;:::-;;11308:22:61;:::i;:::-;215:929:88;;:::i;:::-;;;;;;5805:17:91;215:929:88;;;;;5805:17:91;;215:929:88;;;;;;;;:::i;:::-;;;5805:17:91;5759:65;;215:929:88;5573:258:91;:::o;3385:267:49:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;215:929:88;;;;;1390:66:49;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:88;;;1390:66:49;;215:929:88;;;1390:66:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;215:929:88;1390:66:49;;;;;;;215:929:88;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:929:88;;;;1390:66:49;;;;;215:929:88;1390:66:49;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;215:929:88;;6584:16:53;1390:66:49;;;;;;-1:-1:-1;;1390:66:49;;;;;;;;3504:142;1390:66;;;;;;;;;215:929:88;;;1390:66:49;;215:929:88;;;1390:66:49;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:53;1390:66:49;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:49;;;;;;;;;;;;;14291:213:59;215:929:88;14369:24:59;;;;14365:103;;215:929:88;14291:213:59;:::o;14365:103::-;215:929:88;;;;14416:41:59;;;;;;14447:2;14416:41;;;215:929:88;;;;;14416:41:59;4917:176:53;3515:233:54;4917:176:53;5053:20;;:::i;:::-;3515:233:54;;;;-1:-1:-1;;;3515:233:54;;;;;;;;;;;4917:176:53;:::o;2129:766:52:-;215:929:88;;;2129:766:52;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:52;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;215:929:88:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:58;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;215:929:88;10189:23:58;9401:7;8663:1;215:929:88;;;;10826:16:58;10822:99;;8587:1642;215:929:88;;;;10938:15:58;10934:96;;8587:1642;215:929:88;;;;11047:15:58;11043:96;;8587:1642;215:929:88;;;;11156:15:58;11152:96;;8587:1642;215:929:88;;;;11265:14:58;11261:93;;8587:1642;215:929:88;;;;11371:14:58;11367:93;;8587:1642;215:929:88;;;;11477:14:58;11473:93;;8587:1642;215:929:88;;;11579:64:58;;8587:1642;215:929:88;;;9858:10:58;;;;:::i;:::-;215:929:88;;;;;9848:26:58;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;215:929:88;;11579:64:58;;11473:93;215:929:88;11511:11:58;;215:929:88;;11473:93:58;;;;11367;215:929:88;11405:11:58;;215:929:88;;11367:93:58;;;;11261;215:929:88;11299:11:58;;215:929:88;;11261:93:58;;;;11152:96;215:929:88;11191:12:58;;215:929:88;;11152:96:58;;;;11043;215:929:88;11082:12:58;;215:929:88;;11043:96:58;;;;10934;215:929:88;10973:12:58;;215:929:88;;10934:96:58;;;;10822:99;10862:13;;;215:929:88;10822:99:58;;;;8654:45;8680:8;8663:1;8680:8;:::o;12497:447:91:-;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;2900:5:58;;;;;;215:929:88;;2910:5:58;;;215:929:88;;;;;;;;;13267:109:91;-1:-1:-1;13267:109:91;215:929:88;13267:109:91;;;-1:-1:-1;13267:109:91;;215:929:88;;;;;-1:-1:-1;12771:136:91;215:929:88;;;12830:10:91;;12771:136;;12687:230;;;;12771:136;215:929:88;;;;;;;;;;;12771:136:91;;;9441:606:61;;215:929:88;;9594:15:61;9559:17;9619:18;9652:7;9658:1;9652:7;;9648:234;;9441:606;9906:53;;;;;:::i;:::-;9977:8;;;:63;;9559:17;9441:606;:::o;9977:63::-;10025:7;;;:::i;:::-;13267:109:91;9559:17:61;13267:109:91;;9559:17:61;13267:109:91;;215:929:88;;;9441:606:61;:::o;9648:234::-;9695:14;;;;;:::i;:::-;215:929:88;;;;;;;9906:53:61;13267:109:91;;9559:17:61;13267:109:91;215:929:88;13267:109:91;;;9559:17:61;13267:109:91;;215:929:88;;;;;9727:48:61;9723:149;215:929:88;;;9795:10:61;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;215:929:88;;;;;;;;-1:-1:-1;1390:66:49;;-1:-1:-1;1390:66:49;215:929:88;;-1:-1:-1;215:929:88;:::o;:::-;;;;;;;;;;;;2078:405:49;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;215:929:88;;;;;;:::i;2702:69:49:-;215:929:88;;-1:-1:-1;;;2740:20:49;;;;;3845:262:53;3929:4;3938:11;-1:-1:-1;;;;;215:929:88;3921:28:53;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;215:929:88;;4204:80:53;;;215:929:88;2079:95:53;215:929:88;;4226:11:53;215:929:88;2079:95:53;;215:929:88;4239:14:53;2079:95;;;215:929:88;4255:13:53;2079:95;;;215:929:88;3929:4:53;2079:95;;;215:929:88;2079:95:53;4204:80;;;;;:::i;:::-;215:929:88;4194:91:53;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:52;;;6199:66;6186:79;;6182:164;;215:929:88;;;;;;-1:-1:-1;215:929:88;;;;;;;;;;;;;;;;;;;6457:24:52;;;;;;;;;-1:-1:-1;6457:24:52;-1:-1:-1;;;;;215:929:88;;6495:20:52;6491:113;;6614:49;-1:-1:-1;6614:49:52;-1:-1:-1;5140:1530:52;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:52;6457:24;6531:62;-1:-1:-1;6531:62:52;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:61:-;215:929:88;;10728:8:61;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;215:929:88;;;;;;;;;;;13267:109:91;10690:17:61;13267:109:91;;10690:17:61;13267:109:91;;;215:929:88;:::i;:::-;;;;;;;13267:109:91;215:929:88;;;;;10911:11:61;;215:929:88;;10886:37:61;10870:1;10886:37;;;:::o;2557:104:58:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;215:929:88:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;215:929:88;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:61;215:929:88;;;11672:7:61;;;;215:929:88;11775:28:61;11795:7;;;:::i;:::-;11775:28;13267:109:91;;;;;;13089:293;;11775:28:61;215:929:88;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;215:929:88;;12233:11:61;215:929:88;12027:16:61;215:929:88;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;13267:109:91;;;;;;13089:293;;12063:28:61;215:929:88;;;;;;;12063:43:61;12233:11;215:929:88;-1:-1:-1;;;;;215:929:88;;;;12225:27:61;215:929:88;12225:27:61;:::o;12023:189::-;215:929:88;;12145:52:61;215:929:88;12155:41:61;215:929:88;;:::i;:::-;;;;;;;;12155:41:61;215:929:88;12155:41:61;;;215:929:88;12145:52:61;:::i;:::-;12023:189;;11873:91;215:929:88;;-1:-1:-1;;;11919:30:61;;;;;11668:709;12283:52;215:929:88;;;12293:41:61;215:929:88;;:::i;12293:41:61:-;215:929:88;12293:41:61;;;215:929:88;12283:52:61;:::i;:::-;215:929:88;12349:17:61;215:929:88;12349:17:61;:::o;11513:870::-;215:929:88;;;11672:7:61;;;;215:929:88;11775:28:61;11795:7;;;:::i;215:929:88:-;;;;;;;;;;;;;;;;;11877:15:61;-1:-1:-1;11873:91:61;;215:929:88;;12233:11:61;215:929:88;12027:16:61;215:929:88;;;;;;;12027:16:61;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;215:929:88;;;;;;;;;;12225:27:61;215:929:88;12225:27:61;:::o;12023:189::-;215:929:88;;12145:52:61;215:929:88;12155:41:61;215:929:88;;:::i;12155:41:61:-;215:929:88;12155:41:61;;;215:929:88;12145:52:61;:::i;11668:709::-;12283:52;215:929:88;;;12293:41:61;215:929:88;;:::i;12293:41:61:-;215:929:88;12293:41:61;;;215:929:88;12145:52:61;:::i;12283:::-;11678:1;12349:17;215:929:88;12349:17:61;:::o","linkReferences":{},"immutableReferences":{"51797":[{"start":6000,"length":32}],"51799":[{"start":6187,"length":32}],"51801":[{"start":5946,"length":32}],"51803":[{"start":6079,"length":32}],"51805":[{"start":6117,"length":32}],"51808":[{"start":765,"length":32}],"51811":[{"start":806,"length":32}],"69080":[{"start":1393,"length":32}],"71843":[{"start":1729,"length":32},{"start":4174,"length":32}],"71846":[{"start":622,"length":32},{"start":4257,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optInHint(address,address,address,uint48)":"d4a63862","optInHintInternal(address,address,uint48)":"9a15d7a5","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"optInHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/OptInServiceHints.sol\":\"OptInServiceHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"optInService","type":"address"},{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"optInHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/OptInServiceHints.sol":"OptInServiceHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":88}