{
  "_format": "hh-sol-artifact-1",
  "contractName": "MasterContractManager",
  "sourceName": "contracts/flat/BentoBoxV1Flat.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "masterContract",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "cloneAddress",
          "type": "address"
        }
      ],
      "name": "LogDeploy",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "protocol",
          "type": "address"
        }
      ],
      "name": "LogRegisterProtocol",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "masterContract",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "LogSetMasterContractApproval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "masterContract",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "LogWhiteListMasterContract",
      "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"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "masterContract",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "bool",
          "name": "useCreate2",
          "type": "bool"
        }
      ],
      "name": "deploy",
      "outputs": [
        {
          "internalType": "address",
          "name": "cloneAddress",
          "type": "address"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "masterContractApproved",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "masterContractOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "registerProtocol",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "masterContract",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "setMasterContractApproval",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "direct",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "renounce",
          "type": "bool"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "masterContract",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "whitelistMasterContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "whitelistedMasterContracts",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60c060405234801561001057600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a34660a081905261005f81610068565b60805250610102565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667fd7df266aff736d415a9dc14b4158201d612e70d75b9c7f4e375ccfd20aa5166f83306040516020016100c194939291906100de565b604051602081830303815290604052805190602001209050919050565b938452602084019290925260408301526001600160a01b0316606082015260800190565b60805160a0516114af6101256000398061067c5250806106b152506114af6000f3fe6080604052600436106100d25760003560e01c80637ecebe001161007f578063aee4d1b211610059578063aee4d1b2146101fb578063bafe4f1414610210578063c0a47c9314610230578063e30c397814610250576100d2565b80637ecebe00146101a65780638da5cb5b146101c657806391e0eab5146101db576100d2565b80633644e515116100b05780633644e5151461014f5780634e71e0c814610171578063733a9d7c14610186576100d2565b8063078dfbe7146100d757806312a90c8a146100f95780631f54245b1461012f575b600080fd5b3480156100e357600080fd5b506100f76100f2366004610fd0565b610265565b005b34801561010557600080fd5b50610119610114366004610ee0565b6103f9565b6040516101269190611120565b60405180910390f35b61014261013d366004611019565b61040e565b60405161012691906110ff565b34801561015b57600080fd5b50610164610677565b604051610126919061112b565b34801561017d57600080fd5b506100f76106d7565b34801561019257600080fd5b506100f76101a1366004610fa5565b6107bd565b3480156101b257600080fd5b506101646101c1366004610ee0565b6108e6565b3480156101d257600080fd5b506101426108f8565b3480156101e757600080fd5b506101196101f6366004610f02565b610914565b34801561020757600080fd5b506100f7610934565b34801561021c57600080fd5b5061014261022b366004610ee0565b610993565b34801561023c57600080fd5b506100f761024b366004610f36565b6109bb565b34801561025c57600080fd5b50610142610e14565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906112b6565b60405180910390fd5b81156103b35773ffffffffffffffffffffffffffffffffffffffff83161515806102e65750805b61031c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b69061127f565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff85167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556001805490911690556103f4565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555b505050565b60046020526000908152604090205460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff851661045d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b69061138e565b606085901b82156104e6576000858560405161047a9291906110ab565b604051809103902090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152816037826000f593505050610542565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250505b73ffffffffffffffffffffffffffffffffffffffff8281166000818152600260205260409081902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016938a169390931790925590517f4ddf47d4000000000000000000000000000000000000000000000000000000008152634ddf47d49034906105d590899089906004016111c4565b6000604051808303818588803b1580156105ee57600080fd5b505af1158015610602573d6000803e3d6000fd5b50505050508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fd62166f3c2149208e51788b1401cc356bf5da1fc6c7886a32e18570f57d88b3b87876040516106669291906111c4565b60405180910390a350949350505050565b6000467f000000000000000000000000000000000000000000000000000000000000000081146106af576106aa81610e30565b6106d1565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b60015473ffffffffffffffffffffffffffffffffffffffff16338114610729576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906112eb565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461080e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906112b6565b73ffffffffffffffffffffffffffffffffffffffff821661085b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611211565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515179055517f31a1e0eac44b54ac6c2a2efa87e92c83405ffcf33fceef02a7bca695130e2600906108da908490611120565b60405180910390a25050565b60056020526000908152604090205481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600360209081526000928352604080842090915290825290205460ff1681565b3360008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517fdfb44ffabf0d3a8f650d3ce43eff98f6d050e7ea1a396d5794f014e7dadabacb9190a2565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8516610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906113c3565b81158015610a14575080155b8015610a21575060ff8316155b15610b385773ffffffffffffffffffffffffffffffffffffffff86163314610a75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611248565b73ffffffffffffffffffffffffffffffffffffffff8681166000908152600260205260409020541615610ad4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611320565b73ffffffffffffffffffffffffffffffffffffffff851660009081526004602052604090205460ff16610b33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611431565b610d75565b73ffffffffffffffffffffffffffffffffffffffff8616610b85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906113fa565b60006040518060400160405280600281526020017f1901000000000000000000000000000000000000000000000000000000000000815250610bc5610677565b7f1962bc9f5484cb7a998701b81090e966ee1fce5771af884cceee7c081b14ade287610c11577fb426802f1f7dc850a7b6b38805edea2442f3992878a9ab985abfe8091d95d0b1610c33565b7f422ac5323fe049241dee67716229a1cc1bc7b313b23dfe3ef6d42ab177a3b2845b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600560209081526040918290208054600181019091559151610c7a9493928e928e928e929101611134565b60405160208183030381529060405280519060200120604051602001610ca2939291906110bb565b604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051610cdf94939291906111a6565b6020604051602081039080840390855afa158015610d01573d6000803e3d6000fd5b5050506020604051035190508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611357565b50505b73ffffffffffffffffffffffffffffffffffffffff8581166000818152600360209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016881515179055517f5f6ebb64ba012a851c6f014e6cad458ddf213d1512049b31cd06365c2b05925790610e04908890611120565b60405180910390a3505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667fd7df266aff736d415a9dc14b4158201d612e70d75b9c7f4e375ccfd20aa5166f8330604051602001610e899493929190611175565b604051602081830303815290604052805190602001209050919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610eca57600080fd5b92915050565b80358015158114610eca57600080fd5b600060208284031215610ef1578081fd5b610efb8383610ea6565b9392505050565b60008060408385031215610f14578081fd5b610f1e8484610ea6565b9150610f2d8460208501610ea6565b90509250929050565b60008060008060008060c08789031215610f4e578182fd5b610f588888610ea6565b9550610f678860208901610ea6565b9450610f768860408901610ed0565b9350606087013560ff81168114610f8b578283fd5b9598949750929560808101359460a0909101359350915050565b60008060408385031215610fb7578182fd5b610fc18484610ea6565b9150610f2d8460208501610ed0565b600080600060608486031215610fe4578283fd5b610fee8585610ea6565b92506020840135610ffe81611468565b9150604084013561100e81611468565b809150509250925092565b6000806000806060858703121561102e578384fd5b6110388686610ea6565b9350602085013567ffffffffffffffff80821115611054578485fd5b818701915087601f830112611067578485fd5b813581811115611075578586fd5b886020828501011115611086578586fd5b60208301955080945050505060408501356110a081611468565b939692955090935050565b6000828483379101908152919050565b60008451815b818110156110db57602081880181015185830152016110c1565b818111156110e95782828501525b5091909101928352506020820152604001919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b958652602086019490945273ffffffffffffffffffffffffffffffffffffffff9283166040860152911660608401521515608083015260a082015260c00190565b9384526020840192909252604083015273ffffffffffffffffffffffffffffffffffffffff16606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b60006020825282602083015282846040840137818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b6020808252601c908201527f4d6173746572434d67723a2043616e6e6f7420617070726f7665203000000000604082015260600190565b6020808252601b908201527f4d6173746572434d67723a2075736572206e6f742073656e6465720000000000604082015260600190565b60208082526015908201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b60208082526019908201527f4d6173746572434d67723a207573657220697320636c6f6e6500000000000000604082015260600190565b6020808252601d908201527f4d6173746572434d67723a20496e76616c6964205369676e6174757265000000604082015260600190565b6020808252818101527f426f72696e67466163746f72793a204e6f206d6173746572436f6e7472616374604082015260600190565b6020808252601b908201527f4d6173746572434d67723a206d617374657243206e6f74207365740000000000604082015260600190565b6020808252601c908201527f4d6173746572434d67723a20557365722063616e6e6f74206265203000000000604082015260600190565b6020808252601b908201527f4d6173746572434d67723a206e6f742077686974656c69737465640000000000604082015260600190565b801515811461147657600080fd5b5056fea264697066735822122059b136d12156cc9d240858553e3fa696171312f714396e6239324ec612608fcc64736f6c634300060c0033",
  "deployedBytecode": "0x6080604052600436106100d25760003560e01c80637ecebe001161007f578063aee4d1b211610059578063aee4d1b2146101fb578063bafe4f1414610210578063c0a47c9314610230578063e30c397814610250576100d2565b80637ecebe00146101a65780638da5cb5b146101c657806391e0eab5146101db576100d2565b80633644e515116100b05780633644e5151461014f5780634e71e0c814610171578063733a9d7c14610186576100d2565b8063078dfbe7146100d757806312a90c8a146100f95780631f54245b1461012f575b600080fd5b3480156100e357600080fd5b506100f76100f2366004610fd0565b610265565b005b34801561010557600080fd5b50610119610114366004610ee0565b6103f9565b6040516101269190611120565b60405180910390f35b61014261013d366004611019565b61040e565b60405161012691906110ff565b34801561015b57600080fd5b50610164610677565b604051610126919061112b565b34801561017d57600080fd5b506100f76106d7565b34801561019257600080fd5b506100f76101a1366004610fa5565b6107bd565b3480156101b257600080fd5b506101646101c1366004610ee0565b6108e6565b3480156101d257600080fd5b506101426108f8565b3480156101e757600080fd5b506101196101f6366004610f02565b610914565b34801561020757600080fd5b506100f7610934565b34801561021c57600080fd5b5061014261022b366004610ee0565b610993565b34801561023c57600080fd5b506100f761024b366004610f36565b6109bb565b34801561025c57600080fd5b50610142610e14565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906112b6565b60405180910390fd5b81156103b35773ffffffffffffffffffffffffffffffffffffffff83161515806102e65750805b61031c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b69061127f565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff85167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556001805490911690556103f4565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85161790555b505050565b60046020526000908152604090205460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff851661045d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b69061138e565b606085901b82156104e6576000858560405161047a9291906110ab565b604051809103902090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152816037826000f593505050610542565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250505b73ffffffffffffffffffffffffffffffffffffffff8281166000818152600260205260409081902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016938a169390931790925590517f4ddf47d4000000000000000000000000000000000000000000000000000000008152634ddf47d49034906105d590899089906004016111c4565b6000604051808303818588803b1580156105ee57600080fd5b505af1158015610602573d6000803e3d6000fd5b50505050508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fd62166f3c2149208e51788b1401cc356bf5da1fc6c7886a32e18570f57d88b3b87876040516106669291906111c4565b60405180910390a350949350505050565b6000467f000000000000000000000000000000000000000000000000000000000000000081146106af576106aa81610e30565b6106d1565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b60015473ffffffffffffffffffffffffffffffffffffffff16338114610729576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906112eb565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461080e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906112b6565b73ffffffffffffffffffffffffffffffffffffffff821661085b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611211565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515179055517f31a1e0eac44b54ac6c2a2efa87e92c83405ffcf33fceef02a7bca695130e2600906108da908490611120565b60405180910390a25050565b60056020526000908152604090205481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600360209081526000928352604080842090915290825290205460ff1681565b3360008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517fdfb44ffabf0d3a8f650d3ce43eff98f6d050e7ea1a396d5794f014e7dadabacb9190a2565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8516610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906113c3565b81158015610a14575080155b8015610a21575060ff8316155b15610b385773ffffffffffffffffffffffffffffffffffffffff86163314610a75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611248565b73ffffffffffffffffffffffffffffffffffffffff8681166000908152600260205260409020541615610ad4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611320565b73ffffffffffffffffffffffffffffffffffffffff851660009081526004602052604090205460ff16610b33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611431565b610d75565b73ffffffffffffffffffffffffffffffffffffffff8616610b85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b6906113fa565b60006040518060400160405280600281526020017f1901000000000000000000000000000000000000000000000000000000000000815250610bc5610677565b7f1962bc9f5484cb7a998701b81090e966ee1fce5771af884cceee7c081b14ade287610c11577fb426802f1f7dc850a7b6b38805edea2442f3992878a9ab985abfe8091d95d0b1610c33565b7f422ac5323fe049241dee67716229a1cc1bc7b313b23dfe3ef6d42ab177a3b2845b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600560209081526040918290208054600181019091559151610c7a9493928e928e928e929101611134565b60405160208183030381529060405280519060200120604051602001610ca2939291906110bb565b604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051610cdf94939291906111a6565b6020604051602081039080840390855afa158015610d01573d6000803e3d6000fd5b5050506020604051035190508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b690611357565b50505b73ffffffffffffffffffffffffffffffffffffffff8581166000818152600360209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016881515179055517f5f6ebb64ba012a851c6f014e6cad458ddf213d1512049b31cd06365c2b05925790610e04908890611120565b60405180910390a3505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667fd7df266aff736d415a9dc14b4158201d612e70d75b9c7f4e375ccfd20aa5166f8330604051602001610e899493929190611175565b604051602081830303815290604052805190602001209050919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610eca57600080fd5b92915050565b80358015158114610eca57600080fd5b600060208284031215610ef1578081fd5b610efb8383610ea6565b9392505050565b60008060408385031215610f14578081fd5b610f1e8484610ea6565b9150610f2d8460208501610ea6565b90509250929050565b60008060008060008060c08789031215610f4e578182fd5b610f588888610ea6565b9550610f678860208901610ea6565b9450610f768860408901610ed0565b9350606087013560ff81168114610f8b578283fd5b9598949750929560808101359460a0909101359350915050565b60008060408385031215610fb7578182fd5b610fc18484610ea6565b9150610f2d8460208501610ed0565b600080600060608486031215610fe4578283fd5b610fee8585610ea6565b92506020840135610ffe81611468565b9150604084013561100e81611468565b809150509250925092565b6000806000806060858703121561102e578384fd5b6110388686610ea6565b9350602085013567ffffffffffffffff80821115611054578485fd5b818701915087601f830112611067578485fd5b813581811115611075578586fd5b886020828501011115611086578586fd5b60208301955080945050505060408501356110a081611468565b939692955090935050565b6000828483379101908152919050565b60008451815b818110156110db57602081880181015185830152016110c1565b818111156110e95782828501525b5091909101928352506020820152604001919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b958652602086019490945273ffffffffffffffffffffffffffffffffffffffff9283166040860152911660608401521515608083015260a082015260c00190565b9384526020840192909252604083015273ffffffffffffffffffffffffffffffffffffffff16606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b60006020825282602083015282846040840137818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b6020808252601c908201527f4d6173746572434d67723a2043616e6e6f7420617070726f7665203000000000604082015260600190565b6020808252601b908201527f4d6173746572434d67723a2075736572206e6f742073656e6465720000000000604082015260600190565b60208082526015908201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b60208082526019908201527f4d6173746572434d67723a207573657220697320636c6f6e6500000000000000604082015260600190565b6020808252601d908201527f4d6173746572434d67723a20496e76616c6964205369676e6174757265000000604082015260600190565b6020808252818101527f426f72696e67466163746f72793a204e6f206d6173746572436f6e7472616374604082015260600190565b6020808252601b908201527f4d6173746572434d67723a206d617374657243206e6f74207365740000000000604082015260600190565b6020808252601c908201527f4d6173746572434d67723a20557365722063616e6e6f74206265203000000000604082015260600190565b6020808252601b908201527f4d6173746572434d67723a206e6f742077686974656c69737465640000000000604082015260600190565b801515811461147657600080fd5b5056fea264697066735822122059b136d12156cc9d240858553e3fa696171312f714396e6239324ec612608fcc64736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
