{
  "_format": "hh-sol-artifact-1",
  "contractName": "TimelockControllerWith46MigrationUpgradeable",
  "sourceName": "contracts/governance/TimelockControllerWith46MigrationUpgradeable.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "CallExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "CallSalt",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "predecessor",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "delay",
          "type": "uint256"
        }
      ],
      "name": "CallScheduled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "Cancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldDuration",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newDuration",
          "type": "uint256"
        }
      ],
      "name": "MinDelayChange",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "previousAdminRole",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newAdminRole",
          "type": "bytes32"
        }
      ],
      "name": "RoleAdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "CANCELLER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EXECUTOR_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PROPOSER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "TIMELOCK_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "cancel",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "payload",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "predecessor",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "execute",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "payloads",
          "type": "bytes[]"
        },
        {
          "internalType": "bytes32",
          "name": "predecessor",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "executeBatch",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMinDelay",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "getTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "predecessor",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "hashOperation",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "payloads",
          "type": "bytes[]"
        },
        {
          "internalType": "bytes32",
          "name": "predecessor",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "hashOperationBatch",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "isOperation",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "isOperationDone",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "isOperationPending",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "isOperationReady",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "migrateTo46",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155BatchReceived",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC721Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "predecessor",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "delay",
          "type": "uint256"
        }
      ],
      "name": "schedule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "payloads",
          "type": "bytes[]"
        },
        {
          "internalType": "bytes32",
          "name": "predecessor",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "delay",
          "type": "uint256"
        }
      ],
      "name": "scheduleBatch",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newDelay",
          "type": "uint256"
        }
      ],
      "name": "updateDelay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611fcc806100206000396000f3fe6080604052600436106101c65760003560e01c806364d62353116100f7578063b1c5f42711610095578063d547741f11610064578063d547741f1461057d578063e38335e51461059d578063f23a6e61146105b0578063f27a0c92146105dc57600080fd5b8063b1c5f427146104e4578063bc197c8114610504578063c4d252f514610530578063d45c44351461055057600080fd5b80638f61f4f5116100d15780638f61f4f51461046b57806391d148541461048d578063a217fddf146104ad578063b08e51c0146104c257600080fd5b806364d623531461040b5780638065657f1461042b5780638f2a0bb01461044b57600080fd5b80631fb78738116101645780632f2ff15d1161013e5780632f2ff15d1461038b57806331d50750146103ab57806336568abe146103cb578063584b153e146103eb57600080fd5b80631fb7873814610316578063248a9ca31461032b5780632ab0f5291461035b57600080fd5b80630d3cf6fc116101a05780630d3cf6fc1461026b578063134008d31461029f57806313bc9f20146102b2578063150b7a02146102d257600080fd5b806301d5062a146101d257806301ffc9a7146101f457806307bd02651461022957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101f26101ed366004611587565b6105f1565b005b34801561020057600080fd5b5061021461020f3660046115fb565b6106b5565b60405190151581526020015b60405180910390f35b34801561023557600080fd5b5061025d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610220565b34801561027757600080fd5b5061025d7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101f26102ad366004611625565b6106e0565b3480156102be57600080fd5b506102146102cd366004611690565b610795565b3480156102de57600080fd5b506102fd6102ed36600461175e565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610220565b34801561032257600080fd5b506101f26107bb565b34801561033757600080fd5b5061025d610346366004611690565b60009081526065602052604090206001015490565b34801561036757600080fd5b50610214610376366004611690565b60009081526097602052604090205460011490565b34801561039757600080fd5b506101f26103a63660046117c5565b6108ef565b3480156103b757600080fd5b506102146103c6366004611690565b610919565b3480156103d757600080fd5b506101f26103e63660046117c5565b610932565b3480156103f757600080fd5b50610214610406366004611690565b6109b0565b34801561041757600080fd5b506101f2610426366004611690565b6109c7565b34801561043757600080fd5b5061025d610446366004611625565b610a6b565b34801561045757600080fd5b506101f2610466366004611835565b610aaa565b34801561047757600080fd5b5061025d600080516020611f5783398151915281565b34801561049957600080fd5b506102146104a83660046117c5565b610c2b565b3480156104b957600080fd5b5061025d600081565b3480156104ce57600080fd5b5061025d600080516020611f7783398151915281565b3480156104f057600080fd5b5061025d6104ff3660046118e6565b610c56565b34801561051057600080fd5b506102fd61051f366004611a0d565b63bc197c8160e01b95945050505050565b34801561053c57600080fd5b506101f261054b366004611690565b610c9b565b34801561055c57600080fd5b5061025d61056b366004611690565b60009081526097602052604090205490565b34801561058957600080fd5b506101f26105983660046117c5565b610d5e565b6101f26105ab3660046118e6565b610d83565b3480156105bc57600080fd5b506102fd6105cb366004611ab6565b63f23a6e6160e01b95945050505050565b3480156105e857600080fd5b5060985461025d565b600080516020611f5783398151915261060981610f0d565b6000610619898989898989610a6b565b90506106258184610f1a565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161066196959493929190611b43565b60405180910390a383156106aa57807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106a191815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806106da57506106da82611009565b92915050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361070c816000610c2b565b61071a5761071a813361103e565b600061072a888888888888610a6b565b90506107368185611097565b61074288888888611132565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a60405161077a9493929190611b80565b60405180910390a361078b81611205565b5050505050505050565b6000818152609760205260408120546001811180156107b45750428111155b9392505050565b600080516020611f5783398151915260005260656020527fafe71ff1fe81c59ca16af21c02420893e650adae4948ece1623218f842885478547f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca51480156108585750600080516020611f7783398151915260005260656020527fb33a3829f2d1f31fd111fcd13892b72b93a782f7b93bf968903b15b040efa32154155b6108b55760405162461bcd60e51b8152602060048201526024808201527f54696d656c6f636b436f6e74726f6c6c65723a20616c7265616479206d696772604482015263185d195960e21b60648201526084015b60405180910390fd5b6108ed600080516020611f778339815191527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca561123e565b565b60008281526065602052604090206001015461090a81610f0d565b6109148383611289565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146109a25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108ac565b6109ac828261130f565b5050565b60008181526097602052604081205460019061092b565b333014610a2a5760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108ac565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b6000868686868686604051602001610a8896959493929190611b43565b6040516020818303038152906040528051906020012090509695505050505050565b600080516020611f57833981519152610ac281610f0d565b888714610ae15760405162461bcd60e51b81526004016108ac90611bb2565b888514610b005760405162461bcd60e51b81526004016108ac90611bb2565b6000610b128b8b8b8b8b8b8b8b610c56565b9050610b1e8184610f1a565b60005b8a811015610bdc5780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610b5e57610b5e611bf5565b9050602002016020810190610b739190611c0b565b8d8d86818110610b8557610b85611bf5565b905060200201358c8c87818110610b9e57610b9e611bf5565b9050602002810190610bb09190611c26565b8c8b604051610bc496959493929190611b43565b60405180910390a3610bd581611c82565b9050610b21565b508315610c1e57807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610c1591815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610c77989796959493929190611d2b565b60405160208183030381529060405280519060200120905098975050505050505050565b600080516020611f77833981519152610cb381610f0d565b610cbc826109b0565b610d225760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108ac565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260656020526040902060010154610d7981610f0d565b610914838361130f565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610daf816000610c2b565b610dbd57610dbd813361103e565b878614610ddc5760405162461bcd60e51b81526004016108ac90611bb2565b878414610dfb5760405162461bcd60e51b81526004016108ac90611bb2565b6000610e0d8a8a8a8a8a8a8a8a610c56565b9050610e198185611097565b60005b89811015610ef75760008b8b83818110610e3857610e38611bf5565b9050602002016020810190610e4d9190611c0b565b905060008a8a84818110610e6357610e63611bf5565b9050602002013590503660008a8a86818110610e8157610e81611bf5565b9050602002810190610e939190611c26565b91509150610ea384848484611132565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610eda9493929190611b80565b60405180910390a35050505080610ef090611c82565b9050610e1c565b50610f0181611205565b50505050505050505050565b610f17813361103e565b50565b610f2382610919565b15610f885760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108ac565b609854811015610fe95760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108ac565b610ff38142611dd6565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b14806106da57506301ffc9a760e01b6001600160e01b03198316146106da565b6110488282610c2b565b6109ac5761105581611376565b611060836020611388565b604051602001611071929190611e1e565b60408051601f198184030181529082905262461bcd60e51b82526108ac91600401611e93565b6110a082610795565b6110bc5760405162461bcd60e51b81526004016108ac90611ec6565b8015806110d757506000818152609760205260409020546001145b6109ac5760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108ac565b6000846001600160a01b031684848460405161114f929190611f10565b60006040518083038185875af1925050503d806000811461118c576040519150601f19603f3d011682016040523d82523d6000602084013e611191565b606091505b50509050806111fe5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108ac565b5050505050565b61120e81610795565b61122a5760405162461bcd60e51b81526004016108ac90611ec6565b600090815260976020526040902060019055565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6112938282610c2b565b6109ac5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556112cb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6113198282610c2b565b156109ac5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606106da6001600160a01b03831660145b60606000611397836002611f20565b6113a2906002611dd6565b6001600160401b038111156113b9576113b96116a9565b6040519080825280601f01601f1916602001820160405280156113e3576020820181803683370190505b509050600360fc1b816000815181106113fe576113fe611bf5565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061142d5761142d611bf5565b60200101906001600160f81b031916908160001a9053506000611451846002611f20565b61145c906001611dd6565b90505b60018111156114d4576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061149057611490611bf5565b1a60f81b8282815181106114a6576114a6611bf5565b60200101906001600160f81b031916908160001a90535060049490941c936114cd81611f3f565b905061145f565b5083156107b45760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108ac565b80356001600160a01b038116811461153a57600080fd5b919050565b60008083601f84011261155157600080fd5b5081356001600160401b0381111561156857600080fd5b60208301915083602082850101111561158057600080fd5b9250929050565b600080600080600080600060c0888a0312156115a257600080fd5b6115ab88611523565b96506020880135955060408801356001600160401b038111156115cd57600080fd5b6115d98a828b0161153f565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561160d57600080fd5b81356001600160e01b0319811681146107b457600080fd5b60008060008060008060a0878903121561163e57600080fd5b61164787611523565b95506020870135945060408701356001600160401b0381111561166957600080fd5b61167589828a0161153f565b979a9699509760608101359660809091013595509350505050565b6000602082840312156116a257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156116e7576116e76116a9565b604052919050565b600082601f83011261170057600080fd5b81356001600160401b03811115611719576117196116a9565b61172c601f8201601f19166020016116bf565b81815284602083860101111561174157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561177457600080fd5b61177d85611523565b935061178b60208601611523565b92506040850135915060608501356001600160401b038111156117ad57600080fd5b6117b9878288016116ef565b91505092959194509250565b600080604083850312156117d857600080fd5b823591506117e860208401611523565b90509250929050565b60008083601f84011261180357600080fd5b5081356001600160401b0381111561181a57600080fd5b6020830191508360208260051b850101111561158057600080fd5b600080600080600080600080600060c08a8c03121561185357600080fd5b89356001600160401b038082111561186a57600080fd5b6118768d838e016117f1565b909b50995060208c013591508082111561188f57600080fd5b61189b8d838e016117f1565b909950975060408c01359150808211156118b457600080fd5b506118c18c828d016117f1565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b03121561190257600080fd5b88356001600160401b038082111561191957600080fd5b6119258c838d016117f1565b909a50985060208b013591508082111561193e57600080fd5b61194a8c838d016117f1565b909850965060408b013591508082111561196357600080fd5b506119708b828c016117f1565b999c989b509699959896976060870135966080013595509350505050565b600082601f83011261199f57600080fd5b813560206001600160401b038211156119ba576119ba6116a9565b8160051b6119c98282016116bf565b92835284810182019282810190878511156119e357600080fd5b83870192505b84831015611a02578235825291830191908301906119e9565b979650505050505050565b600080600080600060a08688031215611a2557600080fd5b611a2e86611523565b9450611a3c60208701611523565b935060408601356001600160401b0380821115611a5857600080fd5b611a6489838a0161198e565b94506060880135915080821115611a7a57600080fd5b611a8689838a0161198e565b93506080880135915080821115611a9c57600080fd5b50611aa9888289016116ef565b9150509295509295909350565b600080600080600060a08688031215611ace57600080fd5b611ad786611523565b9450611ae560208701611523565b9350604086013592506060860135915060808601356001600160401b03811115611b0e57600080fd5b611aa9888289016116ef565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a060408201526000611b6b60a083018688611b1a565b60608301949094525060800152949350505050565b60018060a01b0385168152836020820152606060408201526000611ba8606083018486611b1a565b9695505050505050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c1d57600080fd5b6107b482611523565b6000808335601e19843603018112611c3d57600080fd5b8301803591506001600160401b03821115611c5757600080fd5b60200191503681900382131561158057600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c9457611c94611c6c565b5060010190565b81835260006020808501808196508560051b810191508460005b87811015611d1e5782840389528135601e19883603018112611cd657600080fd5b870180356001600160401b03811115611cee57600080fd5b803603891315611cfd57600080fd5b611d0a8682898501611b1a565b9a87019a9550505090840190600101611cb5565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b811015611d6c576001600160a01b03611d5784611523565b16825260209283019290910190600101611d3e565b5083810360208501528881526001600160fb1b03891115611d8c57600080fd5b8860051b9150818a602083013781810191505060208101600081526020848303016040850152611dbd81888a611c9b565b6060850196909652505050608001529695505050505050565b60008219821115611de957611de9611c6c565b500190565b60005b83811015611e09578181015183820152602001611df1565b83811115611e18576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611e56816017850160208801611dee565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611e87816028840160208801611dee565b01602801949350505050565b6020815260008251806020840152611eb2816040850160208701611dee565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6000816000190483118215151615611f3a57611f3a611c6c565b500290565b600081611f4e57611f4e611c6c565b50600019019056feb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a2646970667358221220b1e29aceda06eb664d64dce053f343746c923ee143a52d8355c0c80e45e4a75064736f6c634300080d0033",
  "deployedBytecode": "0x6080604052600436106101c65760003560e01c806364d62353116100f7578063b1c5f42711610095578063d547741f11610064578063d547741f1461057d578063e38335e51461059d578063f23a6e61146105b0578063f27a0c92146105dc57600080fd5b8063b1c5f427146104e4578063bc197c8114610504578063c4d252f514610530578063d45c44351461055057600080fd5b80638f61f4f5116100d15780638f61f4f51461046b57806391d148541461048d578063a217fddf146104ad578063b08e51c0146104c257600080fd5b806364d623531461040b5780638065657f1461042b5780638f2a0bb01461044b57600080fd5b80631fb78738116101645780632f2ff15d1161013e5780632f2ff15d1461038b57806331d50750146103ab57806336568abe146103cb578063584b153e146103eb57600080fd5b80631fb7873814610316578063248a9ca31461032b5780632ab0f5291461035b57600080fd5b80630d3cf6fc116101a05780630d3cf6fc1461026b578063134008d31461029f57806313bc9f20146102b2578063150b7a02146102d257600080fd5b806301d5062a146101d257806301ffc9a7146101f457806307bd02651461022957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101f26101ed366004611587565b6105f1565b005b34801561020057600080fd5b5061021461020f3660046115fb565b6106b5565b60405190151581526020015b60405180910390f35b34801561023557600080fd5b5061025d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610220565b34801561027757600080fd5b5061025d7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101f26102ad366004611625565b6106e0565b3480156102be57600080fd5b506102146102cd366004611690565b610795565b3480156102de57600080fd5b506102fd6102ed36600461175e565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610220565b34801561032257600080fd5b506101f26107bb565b34801561033757600080fd5b5061025d610346366004611690565b60009081526065602052604090206001015490565b34801561036757600080fd5b50610214610376366004611690565b60009081526097602052604090205460011490565b34801561039757600080fd5b506101f26103a63660046117c5565b6108ef565b3480156103b757600080fd5b506102146103c6366004611690565b610919565b3480156103d757600080fd5b506101f26103e63660046117c5565b610932565b3480156103f757600080fd5b50610214610406366004611690565b6109b0565b34801561041757600080fd5b506101f2610426366004611690565b6109c7565b34801561043757600080fd5b5061025d610446366004611625565b610a6b565b34801561045757600080fd5b506101f2610466366004611835565b610aaa565b34801561047757600080fd5b5061025d600080516020611f5783398151915281565b34801561049957600080fd5b506102146104a83660046117c5565b610c2b565b3480156104b957600080fd5b5061025d600081565b3480156104ce57600080fd5b5061025d600080516020611f7783398151915281565b3480156104f057600080fd5b5061025d6104ff3660046118e6565b610c56565b34801561051057600080fd5b506102fd61051f366004611a0d565b63bc197c8160e01b95945050505050565b34801561053c57600080fd5b506101f261054b366004611690565b610c9b565b34801561055c57600080fd5b5061025d61056b366004611690565b60009081526097602052604090205490565b34801561058957600080fd5b506101f26105983660046117c5565b610d5e565b6101f26105ab3660046118e6565b610d83565b3480156105bc57600080fd5b506102fd6105cb366004611ab6565b63f23a6e6160e01b95945050505050565b3480156105e857600080fd5b5060985461025d565b600080516020611f5783398151915261060981610f0d565b6000610619898989898989610a6b565b90506106258184610f1a565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161066196959493929190611b43565b60405180910390a383156106aa57807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106a191815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806106da57506106da82611009565b92915050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361070c816000610c2b565b61071a5761071a813361103e565b600061072a888888888888610a6b565b90506107368185611097565b61074288888888611132565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a60405161077a9493929190611b80565b60405180910390a361078b81611205565b5050505050505050565b6000818152609760205260408120546001811180156107b45750428111155b9392505050565b600080516020611f5783398151915260005260656020527fafe71ff1fe81c59ca16af21c02420893e650adae4948ece1623218f842885478547f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca51480156108585750600080516020611f7783398151915260005260656020527fb33a3829f2d1f31fd111fcd13892b72b93a782f7b93bf968903b15b040efa32154155b6108b55760405162461bcd60e51b8152602060048201526024808201527f54696d656c6f636b436f6e74726f6c6c65723a20616c7265616479206d696772604482015263185d195960e21b60648201526084015b60405180910390fd5b6108ed600080516020611f778339815191527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca561123e565b565b60008281526065602052604090206001015461090a81610f0d565b6109148383611289565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146109a25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108ac565b6109ac828261130f565b5050565b60008181526097602052604081205460019061092b565b333014610a2a5760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108ac565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b6000868686868686604051602001610a8896959493929190611b43565b6040516020818303038152906040528051906020012090509695505050505050565b600080516020611f57833981519152610ac281610f0d565b888714610ae15760405162461bcd60e51b81526004016108ac90611bb2565b888514610b005760405162461bcd60e51b81526004016108ac90611bb2565b6000610b128b8b8b8b8b8b8b8b610c56565b9050610b1e8184610f1a565b60005b8a811015610bdc5780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610b5e57610b5e611bf5565b9050602002016020810190610b739190611c0b565b8d8d86818110610b8557610b85611bf5565b905060200201358c8c87818110610b9e57610b9e611bf5565b9050602002810190610bb09190611c26565b8c8b604051610bc496959493929190611b43565b60405180910390a3610bd581611c82565b9050610b21565b508315610c1e57807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610c1591815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610c77989796959493929190611d2b565b60405160208183030381529060405280519060200120905098975050505050505050565b600080516020611f77833981519152610cb381610f0d565b610cbc826109b0565b610d225760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108ac565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260656020526040902060010154610d7981610f0d565b610914838361130f565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610daf816000610c2b565b610dbd57610dbd813361103e565b878614610ddc5760405162461bcd60e51b81526004016108ac90611bb2565b878414610dfb5760405162461bcd60e51b81526004016108ac90611bb2565b6000610e0d8a8a8a8a8a8a8a8a610c56565b9050610e198185611097565b60005b89811015610ef75760008b8b83818110610e3857610e38611bf5565b9050602002016020810190610e4d9190611c0b565b905060008a8a84818110610e6357610e63611bf5565b9050602002013590503660008a8a86818110610e8157610e81611bf5565b9050602002810190610e939190611c26565b91509150610ea384848484611132565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610eda9493929190611b80565b60405180910390a35050505080610ef090611c82565b9050610e1c565b50610f0181611205565b50505050505050505050565b610f17813361103e565b50565b610f2382610919565b15610f885760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108ac565b609854811015610fe95760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108ac565b610ff38142611dd6565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b14806106da57506301ffc9a760e01b6001600160e01b03198316146106da565b6110488282610c2b565b6109ac5761105581611376565b611060836020611388565b604051602001611071929190611e1e565b60408051601f198184030181529082905262461bcd60e51b82526108ac91600401611e93565b6110a082610795565b6110bc5760405162461bcd60e51b81526004016108ac90611ec6565b8015806110d757506000818152609760205260409020546001145b6109ac5760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108ac565b6000846001600160a01b031684848460405161114f929190611f10565b60006040518083038185875af1925050503d806000811461118c576040519150601f19603f3d011682016040523d82523d6000602084013e611191565b606091505b50509050806111fe5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108ac565b5050505050565b61120e81610795565b61122a5760405162461bcd60e51b81526004016108ac90611ec6565b600090815260976020526040902060019055565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6112938282610c2b565b6109ac5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556112cb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6113198282610c2b565b156109ac5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606106da6001600160a01b03831660145b60606000611397836002611f20565b6113a2906002611dd6565b6001600160401b038111156113b9576113b96116a9565b6040519080825280601f01601f1916602001820160405280156113e3576020820181803683370190505b509050600360fc1b816000815181106113fe576113fe611bf5565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061142d5761142d611bf5565b60200101906001600160f81b031916908160001a9053506000611451846002611f20565b61145c906001611dd6565b90505b60018111156114d4576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061149057611490611bf5565b1a60f81b8282815181106114a6576114a6611bf5565b60200101906001600160f81b031916908160001a90535060049490941c936114cd81611f3f565b905061145f565b5083156107b45760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108ac565b80356001600160a01b038116811461153a57600080fd5b919050565b60008083601f84011261155157600080fd5b5081356001600160401b0381111561156857600080fd5b60208301915083602082850101111561158057600080fd5b9250929050565b600080600080600080600060c0888a0312156115a257600080fd5b6115ab88611523565b96506020880135955060408801356001600160401b038111156115cd57600080fd5b6115d98a828b0161153f565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561160d57600080fd5b81356001600160e01b0319811681146107b457600080fd5b60008060008060008060a0878903121561163e57600080fd5b61164787611523565b95506020870135945060408701356001600160401b0381111561166957600080fd5b61167589828a0161153f565b979a9699509760608101359660809091013595509350505050565b6000602082840312156116a257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156116e7576116e76116a9565b604052919050565b600082601f83011261170057600080fd5b81356001600160401b03811115611719576117196116a9565b61172c601f8201601f19166020016116bf565b81815284602083860101111561174157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561177457600080fd5b61177d85611523565b935061178b60208601611523565b92506040850135915060608501356001600160401b038111156117ad57600080fd5b6117b9878288016116ef565b91505092959194509250565b600080604083850312156117d857600080fd5b823591506117e860208401611523565b90509250929050565b60008083601f84011261180357600080fd5b5081356001600160401b0381111561181a57600080fd5b6020830191508360208260051b850101111561158057600080fd5b600080600080600080600080600060c08a8c03121561185357600080fd5b89356001600160401b038082111561186a57600080fd5b6118768d838e016117f1565b909b50995060208c013591508082111561188f57600080fd5b61189b8d838e016117f1565b909950975060408c01359150808211156118b457600080fd5b506118c18c828d016117f1565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b03121561190257600080fd5b88356001600160401b038082111561191957600080fd5b6119258c838d016117f1565b909a50985060208b013591508082111561193e57600080fd5b61194a8c838d016117f1565b909850965060408b013591508082111561196357600080fd5b506119708b828c016117f1565b999c989b509699959896976060870135966080013595509350505050565b600082601f83011261199f57600080fd5b813560206001600160401b038211156119ba576119ba6116a9565b8160051b6119c98282016116bf565b92835284810182019282810190878511156119e357600080fd5b83870192505b84831015611a02578235825291830191908301906119e9565b979650505050505050565b600080600080600060a08688031215611a2557600080fd5b611a2e86611523565b9450611a3c60208701611523565b935060408601356001600160401b0380821115611a5857600080fd5b611a6489838a0161198e565b94506060880135915080821115611a7a57600080fd5b611a8689838a0161198e565b93506080880135915080821115611a9c57600080fd5b50611aa9888289016116ef565b9150509295509295909350565b600080600080600060a08688031215611ace57600080fd5b611ad786611523565b9450611ae560208701611523565b9350604086013592506060860135915060808601356001600160401b03811115611b0e57600080fd5b611aa9888289016116ef565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a060408201526000611b6b60a083018688611b1a565b60608301949094525060800152949350505050565b60018060a01b0385168152836020820152606060408201526000611ba8606083018486611b1a565b9695505050505050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c1d57600080fd5b6107b482611523565b6000808335601e19843603018112611c3d57600080fd5b8301803591506001600160401b03821115611c5757600080fd5b60200191503681900382131561158057600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c9457611c94611c6c565b5060010190565b81835260006020808501808196508560051b810191508460005b87811015611d1e5782840389528135601e19883603018112611cd657600080fd5b870180356001600160401b03811115611cee57600080fd5b803603891315611cfd57600080fd5b611d0a8682898501611b1a565b9a87019a9550505090840190600101611cb5565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b811015611d6c576001600160a01b03611d5784611523565b16825260209283019290910190600101611d3e565b5083810360208501528881526001600160fb1b03891115611d8c57600080fd5b8860051b9150818a602083013781810191505060208101600081526020848303016040850152611dbd81888a611c9b565b6060850196909652505050608001529695505050505050565b60008219821115611de957611de9611c6c565b500190565b60005b83811015611e09578181015183820152602001611df1565b83811115611e18576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611e56816017850160208801611dee565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611e87816028840160208801611dee565b01602801949350505050565b6020815260008251806020840152611eb2816040850160208701611dee565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6000816000190483118215151615611f3a57611f3a611c6c565b500290565b600081611f4e57611f4e611c6c565b50600019019056feb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a2646970667358221220b1e29aceda06eb664d64dce053f343746c923ee143a52d8355c0c80e45e4a75064736f6c634300080d0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
