{
  "_format": "hh-sol-artifact-1",
  "contractName": "AllocateHandlerLib",
  "sourceName": "contracts/V3/handler/AllocateHandlerLib.sol",
  "abi": [
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "engine",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "clusterArea",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint16",
              "name": "ruleSlotIndexInput",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "ruleSlotIndexOutput",
              "type": "uint16"
            },
            {
              "internalType": "uint8",
              "name": "branch",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "stateCounter",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint8",
              "name": "cmd",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "args",
              "type": "bytes"
            }
          ],
          "internalType": "struct Handler.StateParams",
          "name": "params",
          "type": "tuple"
        },
        {
          "internalType": "uint128",
          "name": "ruleConfig",
          "type": "uint128"
        }
      ],
      "name": "getAllocateState",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "",
          "type": "bytes[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x610e0561003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063f908926e1461003a575b600080fd5b61004d610048366004610a2a565b610063565b60405161005a9190610b58565b60405180910390f35b6060600061007d836001600160801b0316600860006101b9565b6040805160038082526080820190925291925060009190816020015b60608152602001906001900390816100995790505090506100e66040518060400160405280600e81526020016d0626c6f636b54696d657374616d760941b8152504263ffffffff166101d8565b816000815181106100f9576100f9610bf3565b602002602001018190525061013e6040518060400160405280600b81526020016a313637b1b5a73ab6b132b960a91b8152506101336102b9565b63ffffffff166101d8565b8160018151811061015157610151610bf3565b60200260200101819052506101916040518060400160405280601081526020016f0caf0cac6eae8ca626060a6eed2e8c6d60831b8152508360ff166101d8565b816002815181106101a4576101a4610bf3565b60209081029190910101529150505b92915050565b91821c916000806101cd600180861b610c1f565b909416949350505050565b606060006101e584610345565b905060006101f284610350565b6040805160038082526080820190925291925060009190816020015b606081526020019060019003908161020e579050509050828160008151811061023957610239610bf3565b6020026020010181905250610269604051806040016040528060048152602001631d5a5b9d60e21b815250610345565b8160018151811061027c5761027c610bf3565b6020026020010181905250818160028151811061029b5761029b610bf3565b60200260200101819052506102af81610363565b9695505050505050565b60004661a4b181141561033e5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561030057600080fd5b505afa158015610314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103389190610c36565b91505090565b4391505090565b60606101b38261038e565b60606101b361035e836103de565b61038e565b606060006103708361051b565b9050610387610381825160c061064a565b82610800565b9392505050565b606080825160011480156103bd57506080836000815181106103b2576103b2610bf3565b016020015160f81c11155b156103c95750816101b3565b6103876103d88451608061064a565b84610800565b6040805160208082528183019092526060916000919060208201818036833701905050905082602082015260005b60208110156104525781818151811061042757610427610bf3565b01602001516001600160f81b0319161561044057610452565b8061044a81610c4f565b91505061040c565b600061045f826020610c1f565b6001600160401b03811115610476576104766108f5565b6040519080825280601f01601f1916602001820160405280156104a0576020820181803683370190505b50905060005b81518110156105125783836104ba81610c4f565b9450815181106104cc576104cc610bf3565b602001015160f81c60f81b8282815181106104e9576104e9610bf3565b60200101906001600160f81b031916908160001a9053508061050a81610c4f565b9150506104a6565b50949350505050565b606081516000141561053b57505060408051600081526020810190915290565b6000805b83518110156105825783818151811061055a5761055a610bf3565b6020026020010151518261056e9190610c6a565b91508061057a81610c4f565b91505061053f565b6000826001600160401b0381111561059c5761059c6108f5565b6040519080825280601f01601f1916602001820160405280156105c6576020820181803683370190505b50600092509050602081015b85518310156105125760008684815181106105ef576105ef610bf3565b60200260200101519050600060208201905061060d8382845161087d565b87858151811061061f5761061f610bf3565b602002602001015151836106339190610c6a565b92505050828061064290610c4f565b9350506105d2565b60608060388410156106b4576040805160018082528183019092529060208201818036833701905050905061067f8385610c6a565b601f1a60f81b8160008151811061069857610698610bf3565b60200101906001600160f81b031916908160001a905350610387565b600060015b6106c38187610c98565b156106e957816106d281610c4f565b92506106e2905061010082610cac565b90506106b9565b6106f4826001610c6a565b6001600160401b0381111561070b5761070b6108f5565b6040519080825280601f01601f191660200182016040528015610735576020820181803683370190505b5092506107428583610c6a565b61074d906037610c6a565b601f1a60f81b8360008151811061076657610766610bf3565b60200101906001600160f81b031916908160001a905350600190505b8181116107f7576101006107968284610c1f565b6107a290610100610daf565b6107ac9088610c98565b6107b69190610dbb565b601f1a60f81b8382815181106107ce576107ce610bf3565b60200101906001600160f81b031916908160001a905350806107ef81610c4f565b915050610782565b50509392505050565b6060806040519050835180825260208201818101602087015b81831015610831578051835260209283019201610819565b50855184518101855292509050808201602086015b8183101561085e578051835260209283019201610846565b508651929092011591909101601f01601f191660405250905092915050565b8282825b602081106108b95781518352610898602084610c6a565b92506108a5602083610c6a565b91506108b2602082610c1f565b9050610881565b600060016108c8836020610c1f565b6108d490610100610daf565b6108de9190610c1f565b925184518416931916929092179092525050505050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b038111828210171561092e5761092e6108f5565b60405290565b80356001600160a01b038116811461094b57600080fd5b919050565b803563ffffffff8116811461094b57600080fd5b803561ffff8116811461094b57600080fd5b803560ff8116811461094b57600080fd5b600082601f83011261099857600080fd5b81356001600160401b03808211156109b2576109b26108f5565b604051601f8301601f19908116603f011681019082821181831017156109da576109da6108f5565b816040528381528660208588010111156109f357600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160801b038116811461094b57600080fd5b60008060408385031215610a3d57600080fd5b82356001600160401b0380821115610a5457600080fd5b908401906101608287031215610a6957600080fd5b610a7161090b565b610a7a83610934565b8152610a8860208401610934565b6020820152610a9960408401610950565b6040820152610aaa60608401610964565b6060820152610abb60808401610964565b6080820152610acc60a08401610976565b60a0820152610add60c08401610934565b60c0820152610aee60e08401610950565b60e0820152610100610b01818501610934565b90820152610120610b13848201610976565b908201526101408381013583811115610b2b57600080fd5b610b3789828701610987565b828401525050809450505050610b4f60208401610a13565b90509250929050565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b83811015610be557888603603f1901855282518051808852835b81811015610bb5578281018a01518982018b01528901610b9a565b81811115610bc557848a838b0101525b50601f01601f191696909601870195509386019391860191600101610b80565b509398975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610c3157610c31610c09565b500390565b600060208284031215610c4857600080fd5b5051919050565b6000600019821415610c6357610c63610c09565b5060010190565b60008219821115610c7d57610c7d610c09565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610ca757610ca7610c82565b500490565b6000816000190483118215151615610cc657610cc6610c09565b500290565b600181815b80851115610d06578160001904821115610cec57610cec610c09565b80851615610cf957918102915b93841c9390800290610cd0565b509250929050565b600082610d1d575060016101b3565b81610d2a575060006101b3565b8160018114610d405760028114610d4a57610d66565b60019150506101b3565b60ff841115610d5b57610d5b610c09565b50506001821b6101b3565b5060208310610133831016604e8410600b8410161715610d89575081810a6101b3565b610d938383610ccb565b8060001904821115610da757610da7610c09565b029392505050565b60006103878383610d0e565b600082610dca57610dca610c82565b50069056fea26469706673582212207cfd4f3410553213049b87ba2198de5f7ce9a3a4fb2f392ce0358ef2de406c3864736f6c63430008080033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063f908926e1461003a575b600080fd5b61004d610048366004610a2a565b610063565b60405161005a9190610b58565b60405180910390f35b6060600061007d836001600160801b0316600860006101b9565b6040805160038082526080820190925291925060009190816020015b60608152602001906001900390816100995790505090506100e66040518060400160405280600e81526020016d0626c6f636b54696d657374616d760941b8152504263ffffffff166101d8565b816000815181106100f9576100f9610bf3565b602002602001018190525061013e6040518060400160405280600b81526020016a313637b1b5a73ab6b132b960a91b8152506101336102b9565b63ffffffff166101d8565b8160018151811061015157610151610bf3565b60200260200101819052506101916040518060400160405280601081526020016f0caf0cac6eae8ca626060a6eed2e8c6d60831b8152508360ff166101d8565b816002815181106101a4576101a4610bf3565b60209081029190910101529150505b92915050565b91821c916000806101cd600180861b610c1f565b909416949350505050565b606060006101e584610345565b905060006101f284610350565b6040805160038082526080820190925291925060009190816020015b606081526020019060019003908161020e579050509050828160008151811061023957610239610bf3565b6020026020010181905250610269604051806040016040528060048152602001631d5a5b9d60e21b815250610345565b8160018151811061027c5761027c610bf3565b6020026020010181905250818160028151811061029b5761029b610bf3565b60200260200101819052506102af81610363565b9695505050505050565b60004661a4b181141561033e5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561030057600080fd5b505afa158015610314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103389190610c36565b91505090565b4391505090565b60606101b38261038e565b60606101b361035e836103de565b61038e565b606060006103708361051b565b9050610387610381825160c061064a565b82610800565b9392505050565b606080825160011480156103bd57506080836000815181106103b2576103b2610bf3565b016020015160f81c11155b156103c95750816101b3565b6103876103d88451608061064a565b84610800565b6040805160208082528183019092526060916000919060208201818036833701905050905082602082015260005b60208110156104525781818151811061042757610427610bf3565b01602001516001600160f81b0319161561044057610452565b8061044a81610c4f565b91505061040c565b600061045f826020610c1f565b6001600160401b03811115610476576104766108f5565b6040519080825280601f01601f1916602001820160405280156104a0576020820181803683370190505b50905060005b81518110156105125783836104ba81610c4f565b9450815181106104cc576104cc610bf3565b602001015160f81c60f81b8282815181106104e9576104e9610bf3565b60200101906001600160f81b031916908160001a9053508061050a81610c4f565b9150506104a6565b50949350505050565b606081516000141561053b57505060408051600081526020810190915290565b6000805b83518110156105825783818151811061055a5761055a610bf3565b6020026020010151518261056e9190610c6a565b91508061057a81610c4f565b91505061053f565b6000826001600160401b0381111561059c5761059c6108f5565b6040519080825280601f01601f1916602001820160405280156105c6576020820181803683370190505b50600092509050602081015b85518310156105125760008684815181106105ef576105ef610bf3565b60200260200101519050600060208201905061060d8382845161087d565b87858151811061061f5761061f610bf3565b602002602001015151836106339190610c6a565b92505050828061064290610c4f565b9350506105d2565b60608060388410156106b4576040805160018082528183019092529060208201818036833701905050905061067f8385610c6a565b601f1a60f81b8160008151811061069857610698610bf3565b60200101906001600160f81b031916908160001a905350610387565b600060015b6106c38187610c98565b156106e957816106d281610c4f565b92506106e2905061010082610cac565b90506106b9565b6106f4826001610c6a565b6001600160401b0381111561070b5761070b6108f5565b6040519080825280601f01601f191660200182016040528015610735576020820181803683370190505b5092506107428583610c6a565b61074d906037610c6a565b601f1a60f81b8360008151811061076657610766610bf3565b60200101906001600160f81b031916908160001a905350600190505b8181116107f7576101006107968284610c1f565b6107a290610100610daf565b6107ac9088610c98565b6107b69190610dbb565b601f1a60f81b8382815181106107ce576107ce610bf3565b60200101906001600160f81b031916908160001a905350806107ef81610c4f565b915050610782565b50509392505050565b6060806040519050835180825260208201818101602087015b81831015610831578051835260209283019201610819565b50855184518101855292509050808201602086015b8183101561085e578051835260209283019201610846565b508651929092011591909101601f01601f191660405250905092915050565b8282825b602081106108b95781518352610898602084610c6a565b92506108a5602083610c6a565b91506108b2602082610c1f565b9050610881565b600060016108c8836020610c1f565b6108d490610100610daf565b6108de9190610c1f565b925184518416931916929092179092525050505050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b038111828210171561092e5761092e6108f5565b60405290565b80356001600160a01b038116811461094b57600080fd5b919050565b803563ffffffff8116811461094b57600080fd5b803561ffff8116811461094b57600080fd5b803560ff8116811461094b57600080fd5b600082601f83011261099857600080fd5b81356001600160401b03808211156109b2576109b26108f5565b604051601f8301601f19908116603f011681019082821181831017156109da576109da6108f5565b816040528381528660208588010111156109f357600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160801b038116811461094b57600080fd5b60008060408385031215610a3d57600080fd5b82356001600160401b0380821115610a5457600080fd5b908401906101608287031215610a6957600080fd5b610a7161090b565b610a7a83610934565b8152610a8860208401610934565b6020820152610a9960408401610950565b6040820152610aaa60608401610964565b6060820152610abb60808401610964565b6080820152610acc60a08401610976565b60a0820152610add60c08401610934565b60c0820152610aee60e08401610950565b60e0820152610100610b01818501610934565b90820152610120610b13848201610976565b908201526101408381013583811115610b2b57600080fd5b610b3789828701610987565b828401525050809450505050610b4f60208401610a13565b90509250929050565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b83811015610be557888603603f1901855282518051808852835b81811015610bb5578281018a01518982018b01528901610b9a565b81811115610bc557848a838b0101525b50601f01601f191696909601870195509386019391860191600101610b80565b509398975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610c3157610c31610c09565b500390565b600060208284031215610c4857600080fd5b5051919050565b6000600019821415610c6357610c63610c09565b5060010190565b60008219821115610c7d57610c7d610c09565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610ca757610ca7610c82565b500490565b6000816000190483118215151615610cc657610cc6610c09565b500290565b600181815b80851115610d06578160001904821115610cec57610cec610c09565b80851615610cf957918102915b93841c9390800290610cd0565b509250929050565b600082610d1d575060016101b3565b81610d2a575060006101b3565b8160018114610d405760028114610d4a57610d66565b60019150506101b3565b60ff841115610d5b57610d5b610c09565b50506001821b6101b3565b5060208310610133831016604e8410600b8410161715610d89575081810a6101b3565b610d938383610ccb565b8060001904821115610da757610da7610c09565b029392505050565b60006103878383610d0e565b600082610dca57610dca610c82565b50069056fea26469706673582212207cfd4f3410553213049b87ba2198de5f7ce9a3a4fb2f392ce0358ef2de406c3864736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
