{
  "_format": "hh-sol-artifact-1",
  "contractName": "Issuer",
  "sourceName": "contracts/issuer/Issuer.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "issuerFlavor",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "issuerVersion",
          "type": "string"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "stablecoin",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "walletApprover",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "info",
          "type": "string"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "ChangeOwnership",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "oldWalletApprover",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newWalletApprover",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "ChangeWalletApprover",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "info",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "setter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "SetInfo",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "approver",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "wallet",
          "type": "address"
        }
      ],
      "name": "WalletBlacklist",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "approver",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "wallet",
          "type": "address"
        }
      ],
      "name": "WalletWhitelist",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "wallet",
          "type": "address"
        }
      ],
      "name": "approveWallet",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "approvedWalletsMap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "changeOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newWalletApprover",
          "type": "address"
        }
      ],
      "name": "changeWalletApprover",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "commonState",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "flavor",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "version",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "contractAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "stablecoin",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "walletApprover",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "info",
              "type": "string"
            }
          ],
          "internalType": "struct Structs.IssuerCommonState",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "flavor",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getInfoHistory",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "info",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "timestamp",
              "type": "uint256"
            }
          ],
          "internalType": "struct Structs.InfoEntry[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getState",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "flavor",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "version",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "contractAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "stablecoin",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "walletApprover",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "info",
              "type": "string"
            }
          ],
          "internalType": "struct Structs.IssuerState",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getWalletRecords",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "wallet",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "whitelisted",
              "type": "bool"
            }
          ],
          "internalType": "struct Structs.WalletRecord[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "wallet",
          "type": "address"
        }
      ],
      "name": "isWalletApproved",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "info",
          "type": "string"
        }
      ],
      "name": "setInfo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "wallet",
          "type": "address"
        }
      ],
      "name": "suspendWallet",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b50604051620019f6380380620019f683398101604081905262000034916200054b565b6001600160a01b038416620000665760405162461bcd60e51b81526004016200005d906200060f565b60405180910390fd5b6001600160a01b0383166200008f5760405162461bcd60e51b81526004016200005d9062000646565b6001600160a01b038216620000b85760405162461bcd60e51b81526004016200005d9062000688565b6040805180820190915281815242602080830191909152600780546001810182556000919091528251805160029092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801926200011c92849290910190620003e2565b506020918201516001909101556040805160e08101825288815280830188905230918101919091526001600160a01b0386811660608301528581166080830152841660a082015260c081018390528751909160009162000182918391908b0190620003e2565b5060208281015180516200019d9260018501920190620003e2565b5060408201516002820180546001600160a01b039283166001600160a01b0319918216179091556060840151600384018054918416918316919091179055608084015160048401805491841691831691909117905560a084015160058401805491909316911617905560c0820151805162000223916006840191602090910190620003e2565b50620002359150859050600162000241565b50505050505062000746565b6200024c8262000369565b15620002ba576001600160a01b0382166000908152600960205260409020546008805483929081106200028f57634e487b7160e01b600052603260045260246000fd5b60009182526020909120018054911515600160a01b0260ff60a01b1990921691909117905562000365565b604080518082019091526001600160a01b038084168252821515602083019081526008805460018181018355600083905294517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3909101805493511515600160a01b0260ff60a01b19929095166001600160a01b03199094169390931716929092179055546200034b9190620006cf565b6001600160a01b0383166000908152600960205260409020555b5050565b6001600160a01b038116600090815260096020526040812054600854811062000397576000915050620003dd565b826001600160a01b031660088281548110620003c357634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316149150505b919050565b828054620003f090620006f3565b90600052602060002090601f0160209004810192826200041457600085556200045f565b82601f106200042f57805160ff19168380011785556200045f565b828001600101855582156200045f579182015b828111156200045f57825182559160200191906001019062000442565b506200046d92915062000471565b5090565b5b808211156200046d576000815560010162000472565b80516001600160a01b0381168114620003dd57600080fd5b600082601f830112620004b1578081fd5b81516001600160401b0380821115620004ce57620004ce62000730565b6040516020601f8401601f1916820181018381118382101715620004f657620004f662000730565b60405283825285840181018710156200050d578485fd5b8492505b8383101562000530578583018101518284018201529182019162000511565b838311156200054157848185840101525b5095945050505050565b60008060008060008060c0878903121562000564578182fd5b86516001600160401b03808211156200057b578384fd5b620005898a838b01620004a0565b975060208901519150808211156200059f578384fd5b620005ad8a838b01620004a0565b9650620005bd60408a0162000488565b9550620005cd60608a0162000488565b9450620005dd60808a0162000488565b935060a0890151915080821115620005f3578283fd5b506200060289828a01620004a0565b9150509295509295509295565b6020808252601d908201527f4973737565723a20696e76616c6964206f776e65722061646472657373000000604082015260600190565b60208082526022908201527f4973737565723a20696e76616c696420737461626c65636f696e206164647265604082015261737360f01b606082015260800190565b60208082526027908201527f4973737565723a20696e76616c69642077616c6c657420617070726f766572206040820152666164647265737360c81b606082015260800190565b600082821015620006ee57634e487b7160e01b81526011600452602481fd5b500390565b6002810460018216806200070857607f821691505b602082108114156200072a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6112a080620007566000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806360f689931161008c578063cd9b4a1111610066578063cd9b4a1114610192578063dd30b0c7146101b2578063e7283755146101c7578063f59e4f65146101da576100cf565b806360f6899314610157578063937f6e771461016a57806398e162551461017d576100cf565b80630fcb0ae5146100d45780631818e2ec146100e95780631865c57d146101075780632af4c31e1461010f5780633657e8511461012257806354fd4d5014610142575b600080fd5b6100e76100e2366004610dea565b6101e2565b005b6100f1610259565b6040516100fe91906111da565b60405180910390f35b6100f1610458565b6100e761011d366004610dea565b610664565b610135610130366004610dea565b6106e8565b6040516100fe91906110aa565b61014a610755565b6040516100fe91906110b5565b6100e7610165366004610dea565b6107ea565b6100e7610178366004610e18565b610881565b610185610960565b6040516100fe9190610fdd565b6101a56101a0366004610dea565b610a5b565b6040516100fe91906111ed565b6101ba610a6d565b6040516100fe9190611050565b6100e76101d5366004610dea565b610adc565b61014a610b4a565b6005546001600160a01b031633146102155760405162461bcd60e51b815260040161020c9061113e565b60405180910390fd5b610220816001610b5b565b6040516001600160a01b0382169033907fa885b8c784adc80228100361073193dcbe7837f1573403bbbdec8c83da6b3c6190600090a350565b610261610cf0565b6040518060e0016040528060008001805461027b90611219565b80601f01602080910402602001604051908101604052809291908181526020018280546102a790611219565b80156102f45780601f106102c9576101008083540402835291602001916102f4565b820191906000526020600020905b8154815290600101906020018083116102d757829003601f168201915b505050505081526020016000600101805461030e90611219565b80601f016020809104026020016040519081016040528092919081815260200182805461033a90611219565b80156103875780601f1061035c57610100808354040283529160200191610387565b820191906000526020600020905b81548152906001019060200180831161036a57829003601f168201915b50505091835250506002546001600160a01b03908116602083015260035481166040830152600454811660608301526005541660808201526006805460a0909201916103d290611219565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe90611219565b801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b5050505050815250905090565b610460610cf0565b60006040518060e001604052908160008201805461047d90611219565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990611219565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b5050505050815260200160018201805461050f90611219565b80601f016020809104026020016040519081016040528092919081815260200182805461053b90611219565b80156105885780601f1061055d57610100808354040283529160200191610588565b820191906000526020600020905b81548152906001019060200180831161056b57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600383015481166040830152600483015481166060830152600583015416608082015260068201805460a0909201916105dd90611219565b80601f016020809104026020016040519081016040528092919081815260200182805461060990611219565b80156106565780601f1061062b57610100808354040283529160200191610656565b820191906000526020600020905b81548152906001019060200180831161063957829003601f168201915b505050505081525050905090565b6003546001600160a01b0316331461068e5760405162461bcd60e51b815260040161020c906110f6565b600380546001600160a01b0319166001600160a01b0383161790556040517fb4fa0c8f1565e6385961540cac5b9884d84157c515100cf972728e8be8dacdd3906106dd90339084904290610fb9565b60405180910390a150565b60006106f382610c7c565b801561074d57506001600160a01b03821660009081526009602052604090205460088054909190811061073657634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600160a01b900460ff165b90505b919050565b60606000600101805461076790611219565b80601f016020809104026020016040519081016040528092919081815260200182805461079390611219565b80156107e05780601f106107b5576101008083540402835291602001916107e0565b820191906000526020600020905b8154815290600101906020018083116107c357829003601f168201915b5050505050905090565b6003546001600160a01b031633148061080d57506005546001600160a01b031633145b6108295760405162461bcd60e51b815260040161020c90611190565b600580546001600160a01b0319166001600160a01b0383811691909117918290556040517fe4ff1f605955e821f9e684f2d7249e6ff8a5a14f51779fc709d118d7dbf6e9fe926106dd92339291169085904290610f8f565b6003546001600160a01b031633146108ab5760405162461bcd60e51b815260040161020c906110f6565b6040805180820190915281815242602080830191909152600780546001810182556000919091528251805160029092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688019261090d92849290910190610d51565b50602091820151600190910155815161092c9160069190840190610d51565b507f39b28594242c42fce47a0a6e63bac12adbd07fbb35580f5a54b236858101d58a8133426040516106dd939291906110c8565b60606007805480602002602001604051908101604052809291908181526020016000905b82821015610a5257838290600052602060002090600202016040518060400160405290816000820180546109b790611219565b80601f01602080910402602001604051908101604052809291908181526020018280546109e390611219565b8015610a305780601f10610a0557610100808354040283529160200191610a30565b820191906000526020600020905b815481529060010190602001808311610a1357829003601f168201915b5050505050815260200160018201548152505081526020019060010190610984565b50505050905090565b60096020526000908152604090205481565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610a5257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900460ff16151581830152825260019092019101610a91565b6005546001600160a01b03163314610b065760405162461bcd60e51b815260040161020c9061113e565b610b11816000610b5b565b6040516001600160a01b0382169033907f4e3dd8619d0ec707065a022f62a9cbff44d1afe3b24f450b9328648fb1c512a790600090a350565b606060008001805461076790611219565b610b6482610c7c565b15610bcf576001600160a01b038216600090815260096020526040902054600880548392908110610ba557634e487b7160e01b600052603260045260246000fd5b60009182526020909120018054911515600160a01b0260ff60a01b19909216919091179055610c78565b604080518082019091526001600160a01b038084168252821515602083019081526008805460018181018355600083905294517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3909101805493511515600160a01b0260ff60a01b19929095166001600160a01b0319909416939093171692909217905554610c5e91906111f6565b6001600160a01b0383166000908152600960205260409020555b5050565b6001600160a01b0381166000908152600960205260408120546008548110610ca8576000915050610750565b826001600160a01b031660088281548110610cd357634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316149392505050565b6040518060e00160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001606081525090565b828054610d5d90611219565b90600052602060002090601f016020900481019282610d7f5760008555610dc5565b82601f10610d9857805160ff1916838001178555610dc5565b82800160010185558215610dc5579182015b82811115610dc5578251825591602001919060010190610daa565b50610dd1929150610dd5565b5090565b5b80821115610dd15760008155600101610dd6565b600060208284031215610dfb578081fd5b81356001600160a01b0381168114610e11578182fd5b9392505050565b60006020808385031215610e2a578182fd5b823567ffffffffffffffff80821115610e41578384fd5b818501915085601f830112610e54578384fd5b813581811115610e6657610e66611254565b604051601f8201601f1916810185018381118282101715610e8957610e89611254565b6040528181528382018501881015610e9f578586fd5b818585018683013790810190930193909352509392505050565b60008151808452815b81811015610ede57602081850181015186830182015201610ec2565b81811115610eef5782602083870101525b50601f01601f19169290920160200192915050565b6000815160e08452610f1960e0850182610eb9565b905060208301518482036020860152610f328282610eb9565b915050604083015160018060a01b0380821660408701528060608601511660608701528060808601511660808701528060a08601511660a0870152505060c083015184820360c0860152610f868282610eb9565b95945050505050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561104257888303603f190185528151805187855261102588860182610eb9565b918901519489019490945294870194925090860190600101611001565b509098975050505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561109d57815180516001600160a01b03168552860151151586850152928401929085019060010161106d565b5091979650505050505050565b901515815260200190565b600060208252610e116020830184610eb9565b6000606082526110db6060830186610eb9565b6001600160a01b039490941660208301525060400152919050565b60208082526028908201527f4973737565723a204f6e6c79206f776e65722063616e206d616b6520746869736040820152671030b1ba34b7b71760c11b606082015260800190565b60208082526032908201527f4973737565723a204f6e6c792077616c6c657420617070726f7665722063616e6040820152711036b0b5b2903a3434b99030b1ba34b7b71760711b606082015260800190565b6020808252602a908201527f4973737565723a206e6f7420616c6c6f77656420746f2063616c6c207468697360408201526910333ab731ba34b7b71760b11b606082015260800190565b600060208252610e116020830184610f04565b90815260200190565b60008282101561121457634e487b7160e01b81526011600452602481fd5b500390565b60028104600182168061122d57607f821691505b6020821081141561124e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fdfea264697066735822122028f1f5372485e1be697eb30c11bffedaf2257a4d012df83946c6c0b7df48d21564736f6c63430008000033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806360f689931161008c578063cd9b4a1111610066578063cd9b4a1114610192578063dd30b0c7146101b2578063e7283755146101c7578063f59e4f65146101da576100cf565b806360f6899314610157578063937f6e771461016a57806398e162551461017d576100cf565b80630fcb0ae5146100d45780631818e2ec146100e95780631865c57d146101075780632af4c31e1461010f5780633657e8511461012257806354fd4d5014610142575b600080fd5b6100e76100e2366004610dea565b6101e2565b005b6100f1610259565b6040516100fe91906111da565b60405180910390f35b6100f1610458565b6100e761011d366004610dea565b610664565b610135610130366004610dea565b6106e8565b6040516100fe91906110aa565b61014a610755565b6040516100fe91906110b5565b6100e7610165366004610dea565b6107ea565b6100e7610178366004610e18565b610881565b610185610960565b6040516100fe9190610fdd565b6101a56101a0366004610dea565b610a5b565b6040516100fe91906111ed565b6101ba610a6d565b6040516100fe9190611050565b6100e76101d5366004610dea565b610adc565b61014a610b4a565b6005546001600160a01b031633146102155760405162461bcd60e51b815260040161020c9061113e565b60405180910390fd5b610220816001610b5b565b6040516001600160a01b0382169033907fa885b8c784adc80228100361073193dcbe7837f1573403bbbdec8c83da6b3c6190600090a350565b610261610cf0565b6040518060e0016040528060008001805461027b90611219565b80601f01602080910402602001604051908101604052809291908181526020018280546102a790611219565b80156102f45780601f106102c9576101008083540402835291602001916102f4565b820191906000526020600020905b8154815290600101906020018083116102d757829003601f168201915b505050505081526020016000600101805461030e90611219565b80601f016020809104026020016040519081016040528092919081815260200182805461033a90611219565b80156103875780601f1061035c57610100808354040283529160200191610387565b820191906000526020600020905b81548152906001019060200180831161036a57829003601f168201915b50505091835250506002546001600160a01b03908116602083015260035481166040830152600454811660608301526005541660808201526006805460a0909201916103d290611219565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe90611219565b801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b5050505050815250905090565b610460610cf0565b60006040518060e001604052908160008201805461047d90611219565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990611219565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b5050505050815260200160018201805461050f90611219565b80601f016020809104026020016040519081016040528092919081815260200182805461053b90611219565b80156105885780601f1061055d57610100808354040283529160200191610588565b820191906000526020600020905b81548152906001019060200180831161056b57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600383015481166040830152600483015481166060830152600583015416608082015260068201805460a0909201916105dd90611219565b80601f016020809104026020016040519081016040528092919081815260200182805461060990611219565b80156106565780601f1061062b57610100808354040283529160200191610656565b820191906000526020600020905b81548152906001019060200180831161063957829003601f168201915b505050505081525050905090565b6003546001600160a01b0316331461068e5760405162461bcd60e51b815260040161020c906110f6565b600380546001600160a01b0319166001600160a01b0383161790556040517fb4fa0c8f1565e6385961540cac5b9884d84157c515100cf972728e8be8dacdd3906106dd90339084904290610fb9565b60405180910390a150565b60006106f382610c7c565b801561074d57506001600160a01b03821660009081526009602052604090205460088054909190811061073657634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600160a01b900460ff165b90505b919050565b60606000600101805461076790611219565b80601f016020809104026020016040519081016040528092919081815260200182805461079390611219565b80156107e05780601f106107b5576101008083540402835291602001916107e0565b820191906000526020600020905b8154815290600101906020018083116107c357829003601f168201915b5050505050905090565b6003546001600160a01b031633148061080d57506005546001600160a01b031633145b6108295760405162461bcd60e51b815260040161020c90611190565b600580546001600160a01b0319166001600160a01b0383811691909117918290556040517fe4ff1f605955e821f9e684f2d7249e6ff8a5a14f51779fc709d118d7dbf6e9fe926106dd92339291169085904290610f8f565b6003546001600160a01b031633146108ab5760405162461bcd60e51b815260040161020c906110f6565b6040805180820190915281815242602080830191909152600780546001810182556000919091528251805160029092027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688019261090d92849290910190610d51565b50602091820151600190910155815161092c9160069190840190610d51565b507f39b28594242c42fce47a0a6e63bac12adbd07fbb35580f5a54b236858101d58a8133426040516106dd939291906110c8565b60606007805480602002602001604051908101604052809291908181526020016000905b82821015610a5257838290600052602060002090600202016040518060400160405290816000820180546109b790611219565b80601f01602080910402602001604051908101604052809291908181526020018280546109e390611219565b8015610a305780601f10610a0557610100808354040283529160200191610a30565b820191906000526020600020905b815481529060010190602001808311610a1357829003601f168201915b5050505050815260200160018201548152505081526020019060010190610984565b50505050905090565b60096020526000908152604090205481565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610a5257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900460ff16151581830152825260019092019101610a91565b6005546001600160a01b03163314610b065760405162461bcd60e51b815260040161020c9061113e565b610b11816000610b5b565b6040516001600160a01b0382169033907f4e3dd8619d0ec707065a022f62a9cbff44d1afe3b24f450b9328648fb1c512a790600090a350565b606060008001805461076790611219565b610b6482610c7c565b15610bcf576001600160a01b038216600090815260096020526040902054600880548392908110610ba557634e487b7160e01b600052603260045260246000fd5b60009182526020909120018054911515600160a01b0260ff60a01b19909216919091179055610c78565b604080518082019091526001600160a01b038084168252821515602083019081526008805460018181018355600083905294517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3909101805493511515600160a01b0260ff60a01b19929095166001600160a01b0319909416939093171692909217905554610c5e91906111f6565b6001600160a01b0383166000908152600960205260409020555b5050565b6001600160a01b0381166000908152600960205260408120546008548110610ca8576000915050610750565b826001600160a01b031660088281548110610cd357634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316149392505050565b6040518060e00160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001606081525090565b828054610d5d90611219565b90600052602060002090601f016020900481019282610d7f5760008555610dc5565b82601f10610d9857805160ff1916838001178555610dc5565b82800160010185558215610dc5579182015b82811115610dc5578251825591602001919060010190610daa565b50610dd1929150610dd5565b5090565b5b80821115610dd15760008155600101610dd6565b600060208284031215610dfb578081fd5b81356001600160a01b0381168114610e11578182fd5b9392505050565b60006020808385031215610e2a578182fd5b823567ffffffffffffffff80821115610e41578384fd5b818501915085601f830112610e54578384fd5b813581811115610e6657610e66611254565b604051601f8201601f1916810185018381118282101715610e8957610e89611254565b6040528181528382018501881015610e9f578586fd5b818585018683013790810190930193909352509392505050565b60008151808452815b81811015610ede57602081850181015186830182015201610ec2565b81811115610eef5782602083870101525b50601f01601f19169290920160200192915050565b6000815160e08452610f1960e0850182610eb9565b905060208301518482036020860152610f328282610eb9565b915050604083015160018060a01b0380821660408701528060608601511660608701528060808601511660808701528060a08601511660a0870152505060c083015184820360c0860152610f868282610eb9565b95945050505050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561104257888303603f190185528151805187855261102588860182610eb9565b918901519489019490945294870194925090860190600101611001565b509098975050505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561109d57815180516001600160a01b03168552860151151586850152928401929085019060010161106d565b5091979650505050505050565b901515815260200190565b600060208252610e116020830184610eb9565b6000606082526110db6060830186610eb9565b6001600160a01b039490941660208301525060400152919050565b60208082526028908201527f4973737565723a204f6e6c79206f776e65722063616e206d616b6520746869736040820152671030b1ba34b7b71760c11b606082015260800190565b60208082526032908201527f4973737565723a204f6e6c792077616c6c657420617070726f7665722063616e6040820152711036b0b5b2903a3434b99030b1ba34b7b71760711b606082015260800190565b6020808252602a908201527f4973737565723a206e6f7420616c6c6f77656420746f2063616c6c207468697360408201526910333ab731ba34b7b71760b11b606082015260800190565b600060208252610e116020830184610f04565b90815260200190565b60008282101561121457634e487b7160e01b81526011600452602481fd5b500390565b60028104600182168061122d57607f821691505b6020821081141561124e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fdfea264697066735822122028f1f5372485e1be697eb30c11bffedaf2257a4d012df83946c6c0b7df48d21564736f6c63430008000033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
