{
  "_format": "hh-sol-artifact-1",
  "contractName": "DayMonthLimitsTest",
  "sourceName": "contracts/compliance/legacy/test/DayMonthLimitsTest.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_agent",
          "type": "address"
        }
      ],
      "name": "AgentAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_agent",
          "type": "address"
        }
      ],
      "name": "AgentRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_newDailyLimit",
          "type": "uint256"
        }
      ],
      "name": "DailyLimitUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_newMonthlyLimit",
          "type": "uint256"
        }
      ],
      "name": "MonthlyLimitUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_agentAddress",
          "type": "address"
        }
      ],
      "name": "TokenAgentAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_agentAddress",
          "type": "address"
        }
      ],
      "name": "TokenAgentRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "TokenBound",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "TokenUnbound",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_agent",
          "type": "address"
        }
      ],
      "name": "addAgent",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_agentAddress",
          "type": "address"
        }
      ],
      "name": "addTokenAgent",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "bindToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "canTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "complianceCheckOnDayMonthLimits",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "created",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "dailyLimit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "destroyed",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_agent",
          "type": "address"
        }
      ],
      "name": "isAgent",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_agentAddress",
          "type": "address"
        }
      ],
      "name": "isTokenAgent",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "isTokenBound",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "monthlyLimit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_agent",
          "type": "address"
        }
      ],
      "name": "removeAgent",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_agentAddress",
          "type": "address"
        }
      ],
      "name": "removeTokenAgent",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_newDailyLimit",
          "type": "uint256"
        }
      ],
      "name": "setDailyLimit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_newMonthlyLimit",
          "type": "uint256"
        }
      ],
      "name": "setMonthlyLimit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenBound",
      "outputs": [
        {
          "internalType": "contract IToken",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transferred",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "unbindToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "usersCounters",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "dailyCount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "monthlyCount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "dailyTimer",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "monthlyTimer",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6112278061007e6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638baf29b4116100c3578063b20d30a91161007c578063b20d30a9146102dc578063cdde2932146102ef578063e46638e614610302578063f2fde38b14610315578063f3533c3514610328578063ff3e69541461033b57600080fd5b80638baf29b41461026b5780638d2ea772146102345780638da5cb5b1461027e57806393e62f07146102a357806397a6278e146102b6578063993e8b95146102c957600080fd5b806340db3b501161011557806340db3b501461020e5780635786cdd1146102215780635f8dead31461023457806367eeba0c14610247578063715018a61461025057806384e798421461025857600080fd5b80630a6005da146101525780631ffbb0641461016e578063346531fa146101915780633eb33f18146101a45780633ff5aa02146101f9575b600080fd5b61015b60055481565b6040519081526020015b60405180910390f35b61018161017c366004611084565b61034e565b6040519015158152602001610165565b61018161019f366004611084565b610361565b6101d96101b2366004611084565b60066020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610165565b61020c610207366004611084565b61040a565b005b61020c61021c366004611084565b6104f4565b61018161022f3660046110a1565b610616565b61020c6102423660046110e2565b61075b565b61015b60045481565b61020c610783565b61020c610266366004611084565b610797565b61020c6102793660046110a1565b610837565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b60035461028b906001600160a01b031681565b61020c6102c4366004611084565b61086b565b6101816102d7366004611084565b61090b565b61020c6102ea36600461110e565b61092b565b61020c6102fd366004611084565b610968565b6101816103103660046110a1565b610a29565b61020c610323366004611084565b610a4c565b61020c61033636600461110e565b610ac5565b61020c610349366004611084565b610b02565b600061035b600183610bc7565b92915050565b6001600160a01b03811660009081526002602052604081205460ff161580156103f557506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f39190611127565b155b1561040257506000919050565b506001919050565b3361041d6000546001600160a01b031690565b6001600160a01b0316148061044e57506003546001600160a01b031615801561044e5750336001600160a01b038216145b61049f5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336105076000546001600160a01b031690565b6001600160a01b031614806105245750336001600160a01b038216145b6105705760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610496565b6003546001600160a01b038281169116146105cd5760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610496565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016104e9565b60008061062285610c4a565b905061062d85610361565b61074e57600454831115610645576000915050610754565b6001600160a01b038116600090815260066020526040902060020154421080156106c457506004546001600160a01b038216600090815260066020526040902054610691908590611149565b11806106c457506005546001600160a01b0382166000908152600660205260409020600101546106c2908590611149565b115b156106d3576000915050610754565b6001600160a01b038116600090815260066020526040902060020154421015801561072457506005546001600160a01b0382166000908152600660205260409020600101546107229085611149565b115b1561074e576001600160a01b03166000908152600660205260409020600301544210159050610754565b60019150505b9392505050565b610763610d24565b61077f5760405162461bcd60e51b81526004016104969061116a565b5050565b61078b610d34565b6107956000610d8e565b565b61079f610d34565b6001600160a01b0381166107f55760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610496565b610800600182610dde565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b61083f610d24565b61085b5760405162461bcd60e51b81526004016104969061116a565b610866838383610e5a565b505050565b610873610d34565b6001600160a01b0381166108c95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610496565b6108d4600182610e64565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461040257506000919050565b610933610d34565b60048190556040518181527f6cd8635c4285386b9de2e59a4c1eaf32ad41f28ae64c308280217d7af51464e0906020016104e9565b610970610d34565b6001600160a01b03811660009081526002602052604090205460ff166109d85760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610496565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016104e9565b6000610a36848484610616565b610a4257506000610754565b5060019392505050565b610a54610d34565b6001600160a01b038116610ab95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610496565b610ac281610d8e565b50565b610acd610d34565b60058190556040518181527fa07146b9a6c51d225299132338965ae84effc4d198b875827574655eb59eb2a8906020016104e9565b610b0a610d34565b6001600160a01b03811660009081526002602052604090205460ff1615610b735760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610496565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016104e9565b60006001600160a01b038216610c2a5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610496565b506001600160a01b03166000908152602091909152604090205460ff1690565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb891906111d4565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610d00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035b91906111d4565b6000610d2f3361090b565b905090565b6000546001600160a01b031633146107955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610496565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610de88282610bc7565b15610e355760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610496565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6108668382610ee6565b610e6e8282610bc7565b610ec45760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610496565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000610ef183610c4a565b9050610efc81610fc3565b610f0581611017565b6004546001600160a01b038216600090815260066020526040902054610f2c908490611149565b11610f5f576001600160a01b03811660009081526006602052604081208054849290610f59908490611149565b90915550505b6005546001600160a01b038216600090815260066020526040902060010154610f89908490611149565b11610866576001600160a01b03811660009081526006602052604081206001018054849290610fb9908490611149565b9091555050505050565b6001600160a01b0381166000908152600660205260409020600201544210610ac257610ff24262015180611149565b6001600160a01b03821660009081526006602052604081206002810192909255905550565b6001600160a01b0381166000908152600660205260409020600301544210610ac2576110464262278d00611149565b6001600160a01b0382166000908152600660205260408120600381019290925560019091015550565b6001600160a01b0381168114610ac257600080fd5b60006020828403121561109657600080fd5b81356107548161106f565b6000806000606084860312156110b657600080fd5b83356110c18161106f565b925060208401356110d18161106f565b929592945050506040919091013590565b600080604083850312156110f557600080fd5b82356111008161106f565b946020939093013593505050565b60006020828403121561112057600080fd5b5035919050565b60006020828403121561113957600080fd5b8151801515811461075457600080fd5b8082018082111561035b57634e487b7160e01b600052601160045260246000fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b6000602082840312156111e657600080fd5b81516107548161106f56fea2646970667358221220ebd8e0f8959e39b942cac055f6fab7c8f5a40a23984d3100918c93c8565f0d7c64736f6c63430008110033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638baf29b4116100c3578063b20d30a91161007c578063b20d30a9146102dc578063cdde2932146102ef578063e46638e614610302578063f2fde38b14610315578063f3533c3514610328578063ff3e69541461033b57600080fd5b80638baf29b41461026b5780638d2ea772146102345780638da5cb5b1461027e57806393e62f07146102a357806397a6278e146102b6578063993e8b95146102c957600080fd5b806340db3b501161011557806340db3b501461020e5780635786cdd1146102215780635f8dead31461023457806367eeba0c14610247578063715018a61461025057806384e798421461025857600080fd5b80630a6005da146101525780631ffbb0641461016e578063346531fa146101915780633eb33f18146101a45780633ff5aa02146101f9575b600080fd5b61015b60055481565b6040519081526020015b60405180910390f35b61018161017c366004611084565b61034e565b6040519015158152602001610165565b61018161019f366004611084565b610361565b6101d96101b2366004611084565b60066020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610165565b61020c610207366004611084565b61040a565b005b61020c61021c366004611084565b6104f4565b61018161022f3660046110a1565b610616565b61020c6102423660046110e2565b61075b565b61015b60045481565b61020c610783565b61020c610266366004611084565b610797565b61020c6102793660046110a1565b610837565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b60035461028b906001600160a01b031681565b61020c6102c4366004611084565b61086b565b6101816102d7366004611084565b61090b565b61020c6102ea36600461110e565b61092b565b61020c6102fd366004611084565b610968565b6101816103103660046110a1565b610a29565b61020c610323366004611084565b610a4c565b61020c61033636600461110e565b610ac5565b61020c610349366004611084565b610b02565b600061035b600183610bc7565b92915050565b6001600160a01b03811660009081526002602052604081205460ff161580156103f557506003546040516307feec1960e21b81526001600160a01b03848116600483015290911690631ffbb06490602401602060405180830381865afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f39190611127565b155b1561040257506000919050565b506001919050565b3361041d6000546001600160a01b031690565b6001600160a01b0316148061044e57506003546001600160a01b031615801561044e5750336001600160a01b038216145b61049f5760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c0000000060448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692b906020015b60405180910390a150565b336105076000546001600160a01b031690565b6001600160a01b031614806105245750336001600160a01b038216145b6105705760405162461bcd60e51b815260206004820152601c60248201527f6f6e6c79206f776e6572206f7220746f6b656e2063616e2063616c6c000000006044820152606401610496565b6003546001600160a01b038281169116146105cd5760405162461bcd60e51b815260206004820152601760248201527f5468697320746f6b656e206973206e6f7420626f756e640000000000000000006044820152606401610496565b600380546001600160a01b03191690556040516001600160a01b03821681527f28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7a906020016104e9565b60008061062285610c4a565b905061062d85610361565b61074e57600454831115610645576000915050610754565b6001600160a01b038116600090815260066020526040902060020154421080156106c457506004546001600160a01b038216600090815260066020526040902054610691908590611149565b11806106c457506005546001600160a01b0382166000908152600660205260409020600101546106c2908590611149565b115b156106d3576000915050610754565b6001600160a01b038116600090815260066020526040902060020154421015801561072457506005546001600160a01b0382166000908152600660205260409020600101546107229085611149565b115b1561074e576001600160a01b03166000908152600660205260409020600301544210159050610754565b60019150505b9392505050565b610763610d24565b61077f5760405162461bcd60e51b81526004016104969061116a565b5050565b61078b610d34565b6107956000610d8e565b565b61079f610d34565b6001600160a01b0381166107f55760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610496565b610800600182610dde565b6040516001600160a01b038216907ff68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec590600090a250565b61083f610d24565b61085b5760405162461bcd60e51b81526004016104969061116a565b610866838383610e5a565b505050565b610873610d34565b6001600160a01b0381166108c95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610496565b6108d4600182610e64565b6040516001600160a01b038216907fed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0b90600090a250565b6003546000906001600160a01b0383811691161461040257506000919050565b610933610d34565b60048190556040518181527f6cd8635c4285386b9de2e59a4c1eaf32ad41f28ae64c308280217d7af51464e0906020016104e9565b610970610d34565b6001600160a01b03811660009081526002602052604090205460ff166109d85760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e74206973206e6f742072656769737465726564207965746044820152606401610496565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f6a659bb87bb23efbdc295f8eed8ae8c4379bfb77660ced2ef0f3d7d26b05c6a691016104e9565b6000610a36848484610616565b610a4257506000610754565b5060019392505050565b610a54610d34565b6001600160a01b038116610ab95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610496565b610ac281610d8e565b50565b610acd610d34565b60058190556040518181527fa07146b9a6c51d225299132338965ae84effc4d198b875827574655eb59eb2a8906020016104e9565b610b0a610d34565b6001600160a01b03811660009081526002602052604090205460ff1615610b735760405162461bcd60e51b815260206004820181905260248201527f54686973204167656e7420697320616c726561647920726567697374657265646044820152606401610496565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fd62c45e13ac30396aceb3ad37c89bd1ba9048032fe61679000e92eb93dbfd67d91016104e9565b60006001600160a01b038216610c2a5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610496565b506001600160a01b03166000908152602091909152604090205460ff1690565b600354604080516304d3863d60e21b815290516000926001600160a01b03169163134e18f49160048083019260209291908290030181865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb891906111d4565b604051633c3ad79560e21b81526001600160a01b038481166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610d00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035b91906111d4565b6000610d2f3361090b565b905090565b6000546001600160a01b031633146107955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610496565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610de88282610bc7565b15610e355760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610496565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6108668382610ee6565b610e6e8282610bc7565b610ec45760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610496565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000610ef183610c4a565b9050610efc81610fc3565b610f0581611017565b6004546001600160a01b038216600090815260066020526040902054610f2c908490611149565b11610f5f576001600160a01b03811660009081526006602052604081208054849290610f59908490611149565b90915550505b6005546001600160a01b038216600090815260066020526040902060010154610f89908490611149565b11610866576001600160a01b03811660009081526006602052604081206001018054849290610fb9908490611149565b9091555050505050565b6001600160a01b0381166000908152600660205260409020600201544210610ac257610ff24262015180611149565b6001600160a01b03821660009081526006602052604081206002810192909255905550565b6001600160a01b0381166000908152600660205260409020600301544210610ac2576110464262278d00611149565b6001600160a01b0382166000908152600660205260408120600381019290925560019091015550565b6001600160a01b0381168114610ac257600080fd5b60006020828403121561109657600080fd5b81356107548161106f565b6000806000606084860312156110b657600080fd5b83356110c18161106f565b925060208401356110d18161106f565b929592945050506040919091013590565b600080604083850312156110f557600080fd5b82356111008161106f565b946020939093013593505050565b60006020828403121561112057600080fd5b5035919050565b60006020828403121561113957600080fd5b8151801515811461075457600080fd5b8082018082111561035b57634e487b7160e01b600052601160045260246000fd5b60208082526044908201527f6572726f72203a20746869732061646472657373206973206e6f74206120746f60408201527f6b656e20626f756e6420746f2074686520636f6d706c69616e636520636f6e746060820152631c9858dd60e21b608082015260a00190565b6000602082840312156111e657600080fd5b81516107548161106f56fea2646970667358221220ebd8e0f8959e39b942cac055f6fab7c8f5a40a23984d3100918c93c8565f0d7c64736f6c63430008110033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
