diff --git a/README.md b/README.md index 1afec78af62fff8cf5045166be85e378b75a6357..58b007bc64c2b7bfabd3f3cb54ea65fe74822ac2 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,8 @@ logicAddress为各方法签名对应的controller逻辑合约地址。 | | getDataList | 0x948F88A4 | 0x6AF9402E | | | queryUserRole | 0x114003C0 | 0x71F7025C | | | revokeUserManagePermission | 0xFC4EB482 | 0xA4FF64C2 | - +| | getUserAccount | 0xEEB9AB18 | 0xFC864FBB | +| | checkAccount | 0x69921C26 | 0x520BDF0A | 其中DREvidenceRightController对应的方法签名如下表所示: diff --git a/contracts/DREvidenceUserController.sol b/contracts/DREvidenceUserController.sol index 31cf3783746f4a853a539f57da2b29ddc5cc4fb3..90f59c9d9df21691fb46ea3a9c39768a613accbe 100644 --- a/contracts/DREvidenceUserController.sol +++ b/contracts/DREvidenceUserController.sol @@ -127,6 +127,16 @@ contract DREvidenceUserController is Initializable, DRAccessController, DREviden _emitUserRoleChanged(bid); } + function getUserAccount(string memory bid) public view returns(address account) { + return dataStorage.getUserAccount(bid); + } + + function checkAccount(address account) public view returns(bool isExist, string memory bid) { + (bool _isExist, string memory _bid) = dataStorage._getUserBidByAccount(account); + isExist = _isExist; + bid = _bid; + } + /* 4.3 登记存证(二阶段)*/ /* 5. 查询相关接口 */ diff --git a/contracts/interfaces/IDREvidence.sol b/contracts/interfaces/IDREvidence.sol index e70833e6b28240d3ea0b77f27560e66f6029a9e2..96bb9ef528167ff6687ac6a794e728e741cba09e 100644 --- a/contracts/interfaces/IDREvidence.sol +++ b/contracts/interfaces/IDREvidence.sol @@ -209,6 +209,10 @@ interface IDREvidence { */ function revokeUserRoles(string memory bid, string[] memory roles) external; + function getUserAccount(string memory bid) external view returns (address account); + + function checkAccount(address account) external view returns(bool isExist, string memory bid); + /* 4.3 登记存证(二阶段)*/ /* 5. 查询相关接口 */ diff --git a/contracts/storage/DREvidenceStorageLib.sol b/contracts/storage/DREvidenceStorageLib.sol index 287efb6c3ac6a35a686b9f6df60ec4ef931e72ef..f5c87dba894a25e09050eb7a4c9e594aa401f4ed 100644 --- a/contracts/storage/DREvidenceStorageLib.sol +++ b/contracts/storage/DREvidenceStorageLib.sol @@ -506,6 +506,12 @@ library DREvidenceStorageLib { } } + function getUserAccount(DREvidenceStorageDefine.DREStorage storage sto, string memory bid) internal view returns(address account) { + require(_userExist(sto, bid) == true, "User not exist."); + DREvidenceStorageDefine.UserInfoV1 storage user = _getUseStoragerByBid(sto, bid); + account = user.account; + } + /* 4.3 登记存证(二阶段)*/ /* 5. 查询相关接口 */ @@ -582,6 +588,8 @@ library DREvidenceStorageLib { // TODO: 检查该用户是否有审核角色 // _checkUserRole(DREvidenceStorageConstant.USER_ROLE_REVIEWER); // TODO: 确保reviewDataHash没有被添加过 + + require(reviewDataHash.length >= 1, "There should be more than 1 Data Hash."); verifyBid(sto, reviewerBid); // 确保udri对应的数据存证已经存在 @@ -807,7 +815,7 @@ library DREvidenceStorageLib { string[] memory metaData, string[] memory variableData ) internal { - require(dataHash.length == 2, "There should be 2 Data Hash."); + require(dataHash.length >= 1, "There should be more than 1 Data Hash."); // 确保dataHash没有被添加过 require( checkDataHashOnChain(sto, dataHash) == false, @@ -977,7 +985,7 @@ library DREvidenceStorageLib { require(DREvidenceStorageConstant.EVIDENCE_CATEGORY_RIGHT.equal(_category), "This Eid is not right Eid."); dataHashSM = dataHash[0]; - dataHashSHA = dataHash[1]; + if (dataHash.length > 1) dataHashSHA = dataHash[1]; dataRight = getUserDataRight(sto, udri, bid); metadata = _metaData; variabledata = _getVariableData(sto, innerEid, _category); diff --git a/java/DREvidenceAdminController.java b/java/DREvidenceAdminController.java index df9bbbe67c10563ccc4411ceaca5852185e7875b..24346a727b596a2f9f1ef75ad9eb4da4514c58e5 100644 --- a/java/DREvidenceAdminController.java +++ b/java/DREvidenceAdminController.java @@ -31,7 +31,7 @@ import org.fisco.bcos.sdk.v3.transaction.model.exception.ContractException; public class DREvidenceAdminController extends Contract { public static final String[] BINARY_ARRAY = { "608060405234801561001057600080fd5b50611cf8806100206000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063760b04dd116100de578063c0c41f2211610097578063d722b0bc11610071578063d722b0bc14610313578063e6a310ba14610328578063fc1dad811461033b578063fc4eb4821461034357600080fd5b8063c0c41f22146102e5578063ce3fb8ac146102f8578063d547741f1461030057600080fd5b8063760b04dd146102925780638129fc1c1461029a5780638a9019b3146102a257806391d14854146102b7578063936628c1146102ca578063a217fddf146102dd57600080fd5b806336568abe1161013057806336568abe1461022b57806336f5f45e1461023e5780633dd296b51461024657806347791208146102595780634cea35a61461026c57806350e12a461461027f57600080fd5b806301ffc9a7146101785780631b06b394146101a0578063248a9ca3146101b55780632f2ff15d146101e657806332d74327146101f957806335f6a6611461020e575b600080fd5b61018b6101863660046116ff565b610356565b60405190151581526020015b60405180910390f35b6101b36101ae366004611729565b61038d565b005b6101d86101c336600461174f565b60009081526065602052604090206001015490565b604051908152602001610197565b6101b36101f436600461177f565b6103f5565b6101d8600080516020611ca383398151915281565b61021661041f565b60405163ffffffff9091168152602001610197565b6101b361023936600461177f565b61048e565b6101b3610511565b6101b3610254366004611862565b61055e565b6101b3610267366004611946565b610600565b61018b61027a3660046119aa565b610617565b6101b361028d366004611729565b61069e565b6101b36106f6565b6101b3610745565b6102aa6109db565b6040516101979190611a3f565b61018b6102c536600461177f565b6109ec565b6101b36102d8366004611aa1565b610a17565b6101d8600081565b6101b36102f33660046119aa565b610bcc565b610216610c25565b6101b361030e36600461177f565b610c75565b61031b610c9a565b6040516101979190611ad6565b6102aa6103363660046119aa565b610cea565b610216610cf7565b6101b36103513660046119aa565b610d38565b60006001600160e01b03198216637965db0b60e01b148061038757506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061039881610e01565b6040805180820190915260128152717374725f61727261795f6d61785f6c656e3d60701b60208201526103ef7f802f3fb6a2c692c8b19ddabbf91b97d98f374e06c6c98dbd2bc9216b344f4ebd5b60cf9085610e0b565b50505050565b60008281526065602052604090206001015461041081610e01565b61041a8383610e37565b505050565b6040805180820190915260128152717374725f61727261795f6d61785f6c656e3d60701b60208201526000906104887f802f3fb6a2c692c8b19ddabbf91b97d98f374e06c6c98dbd2bc9216b344f4ebd5b600090815260cf602052604090205463ffffffff1690565b91505090565b6001600160a01b03811633146105035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61050d8282610ebd565b5050565b600061051c81610e01565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b602082015261041a60cf600080516020611c838339815191526001610e0b565b600061056981610e01565b60006001600160a01b03166097846040516105849190611ae9565b908152604051908190036020019020546001600160a01b0316141561041a576105bb600080516020611ca383398151915283610e37565b816097846040516105cc9190611ae9565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b600061060b81610e01565b61041a60c98484610f24565b6000806001600160a01b03166097836040516106339190611ae9565b908152604051908190036020019020546001600160a01b03161461069157610387600080516020611ca38339815191526097846040516106739190611ae9565b908152604051908190036020019020546001600160a01b03166109ec565b506000919050565b919050565b60006106a981610e01565b60408051808201909152600d81526c746578745f6d61785f6c656e3d60981b60208201526103ef7fbb3ebb9b986cc146045b82d588631c3d333f12f8cfcc730840a721f4b168ec876103e6565b600061070181610e01565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b602082015261041a600080516020611c838339815191525b60cf906000610e0b565b600054610100900460ff16158080156107655750600054600160ff909116105b8061077f5750303b15801561077f575060005460ff166001145b6107e25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104fa565b6000805460ff191660011790558015610805576000805461ff0019166101001790555b6108106000336110e0565b6108376040518060400160405280600581526020016406269643a360dc1b8152503361055e565b60408051808201909152600b81526a636861696e5f6e616d653d60a81b60208201526108a37fa265df45ec192128b9ce24c4a92b917d70b2ca2690e1b749cdb371ab129004fc60408051808201909152600681526529b43aac34b760d11b602082015260ce91906110ea565b505060408051808201909152600d81526c746578745f6d61785f6c656e3d60981b60208201526108f760cf7fbb3ebb9b986cc146045b82d588631c3d333f12f8cfcc730840a721f4b168ec87611388610e0b565b50506040805180820190915260128152717374725f61727261795f6d61785f6c656e3d60701b602082015261095060cf7f802f3fb6a2c692c8b19ddabbf91b97d98f374e06c6c98dbd2bc9216b344f4ebd6103e8610e0b565b505060408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b6020820152610990600080516020611c8383398151915261073b565b505080156109d8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60606109e760c9611111565b905090565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610a2281610e01565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b6020909101527fb67aaf8c3d37a20d791807426a86a6bbc7b112706f57e87aecb8da95369575946000610a7c60cd83611174565b905060005b81518163ffffffff161015610b2657600060405180604001604052806018815260200177646174615f72696768745f63617465676f72793a6b65793d60401b81525090506000610af9878463ffffffff1681518110610ae257610ae2611b05565b60200260200101518361125890919063ffffffff16565b80516020909101209050610b1060cf826000610e0b565b5050508080610b1e90611b31565b915050610a81565b5060005b84518163ffffffff161015610bb857600060405180604001604052806018815260200177646174615f72696768745f63617465676f72793a6b65793d60401b81525090506000610b8b878463ffffffff1681518110610ae257610ae2611b05565b80516020909101209050610ba260cf826001610e0b565b5050508080610bb090611b31565b915050610b2a565b50610bc560cd8386611284565b5050505050565b6000610bd781610e01565b60408051808201909152600b81526a636861696e5f6e616d653d60a81b60208201526103ef60ce7fa265df45ec192128b9ce24c4a92b917d70b2ca2690e1b749cdb371ab129004fc856110ea565b60408051808201909152600d81526c746578745f6d61785f6c656e3d60981b60208201526000906104887fbb3ebb9b986cc146045b82d588631c3d333f12f8cfcc730840a721f4b168ec87610470565b600082815260656020526040902060010154610c9081610e01565b61041a8383610ebd565b60408051808201909152600b81526a636861696e5f6e616d653d60a81b602082015260609061048860ce7fa265df45ec192128b9ce24c4a92b917d70b2ca2690e1b749cdb371ab129004fc6112a0565b606061038760c983611343565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b6020820152600090610488600080516020611c83833981519152610470565b6000610d4381610e01565b60006001600160a01b0316609783604051610d5e9190611ae9565b908152604051908190036020019020546001600160a01b03161461050d57610dbc600080516020611ca3833981519152609784604051610d9e9190611ae9565b908152604051908190036020019020546001600160a01b0316610ebd565b6000609783604051610dce9190611ae9565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b6109d881336113af565b6000828152602084905260409020805463ffffffff831663ffffffff1990911617905560019392505050565b610e4182826109ec565b61050d5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610e793390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610ec782826109ec565b1561050d5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610f6e6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d8152508461125890919063ffffffff16565b805160208201209091506000610f876004870183611174565b905060005b81518163ffffffff161015611028576000610fda604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508861125890919063ffffffff16565b9050600061", - "0ff9848463ffffffff1681518110610ae257610ae2611b05565b8051602090910120905061101260068a01826000610e0b565b505050808061102090611b31565b915050610f8c565b5060005b84518163ffffffff1610156110c857600061107a604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508861125890919063ffffffff16565b90506000611099878463ffffffff1681518110610ae257610ae2611b05565b805160209091012090506110b260068a01826001610e0b565b50505080806110c090611b31565b91505061102c565b506110d7600487018386611284565b50505050505050565b61050d8282610e37565b60008281526020848152604082208351611106928501906115b6565b506001949350505050565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b60209091015260607fb67aaf8c3d37a20d791807426a86a6bbc7b112706f57e87aecb8da953695759461116d6004840182611174565b9392505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b8282101561124c5783829060005260206000200180546111bf90611b55565b80601f01602080910402602001604051908101604052809291908181526020018280546111eb90611b55565b80156112385780601f1061120d57610100808354040283529160200191611238565b820191906000526020600020905b81548152906001019060200180831161121b57829003601f168201915b5050505050815260200190600101906111a0565b50505050905092915050565b6060828260405160200161126d929190611b90565b604051602081830303815290604052905092915050565b600082815260208481526040822083516111069285019061163a565b60008181526020839052604090208054606091906112bd90611b55565b80601f01602080910402602001604051908101604052809291908181526020018280546112e990611b55565b80156113365780601f1061130b57610100808354040283529160200191611336565b820191906000526020600020905b81548152906001019060200180831161131957829003601f168201915b5050505050905092915050565b6060600061138f6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d8152508461125890919063ffffffff16565b805160208201209091506113a66004860182611174565b95945050505050565b6113b982826109ec565b61050d576113c681611408565b6113d183602061141a565b6040516020016113e2929190611bbf565b60408051601f198184030181529082905262461bcd60e51b82526104fa91600401611ad6565b60606103876001600160a01b03831660145b60606000611429836002611c34565b611434906002611c53565b67ffffffffffffffff81111561144c5761144c6117ab565b6040519080825280601f01601f191660200182016040528015611476576020820181803683370190505b509050600360fc1b8160008151811061149157611491611b05565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106114c0576114c0611b05565b60200101906001600160f81b031916908160001a90535060006114e4846002611c34565b6114ef906001611c53565b90505b6001811115611567576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061152357611523611b05565b1a60f81b82828151811061153957611539611b05565b60200101906001600160f81b031916908160001a90535060049490941c9361156081611c6b565b90506114f2565b50831561116d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104fa565b8280546115c290611b55565b90600052602060002090601f0160209004810192826115e4576000855561162a565b82601f106115fd57805160ff191683800117855561162a565b8280016001018555821561162a579182015b8281111561162a57825182559160200191906001019061160f565b50611636929150611693565b5090565b828054828255906000526020600020908101928215611687579160200282015b8281111561168757825180516116779184916020909101906115b6565b509160200191906001019061165a565b506116369291506116a8565b5b808211156116365760008155600101611694565b808211156116365760006116bc82826116c5565b506001016116a8565b5080546116d190611b55565b6000825580601f106116e1575050565b601f0160209004906000526020600020908101906109d89190611693565b60006020828403121561171157600080fd5b81356001600160e01b03198116811461116d57600080fd5b60006020828403121561173b57600080fd5b813563ffffffff8116811461116d57600080fd5b60006020828403121561176157600080fd5b5035919050565b80356001600160a01b038116811461069957600080fd5b6000806040838503121561179257600080fd5b823591506117a260208401611768565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156117ea576117ea6117ab565b604052919050565b600082601f83011261180357600080fd5b813567ffffffffffffffff81111561181d5761181d6117ab565b611830601f8201601f19166020016117c1565b81815284602083860101111561184557600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561187557600080fd5b823567ffffffffffffffff81111561188c57600080fd5b611898858286016117f2565b9250506117a260208401611768565b600082601f8301126118b857600080fd5b8135602067ffffffffffffffff808311156118d5576118d56117ab565b8260051b6118e48382016117c1565b93845285810183019383810190888611156118fe57600080fd5b84880192505b8583101561193a5782358481111561191c5760008081fd5b61192a8a87838c01016117f2565b8352509184019190840190611904565b98975050505050505050565b6000806040838503121561195957600080fd5b823567ffffffffffffffff8082111561197157600080fd5b61197d868387016117f2565b9350602085013591508082111561199357600080fd5b506119a0858286016118a7565b9150509250929050565b6000602082840312156119bc57600080fd5b813567ffffffffffffffff8111156119d357600080fd5b6119df848285016117f2565b949350505050565b60005b83811015611a025781810151838201526020016119ea565b838111156103ef5750506000910152565b60008151808452611a2b8160208601602086016119e7565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015611a9457603f19888603018452611a82858351611a13565b94509285019290850190600101611a66565b5092979650505050505050565b600060208284031215611ab357600080fd5b813567ffffffffffffffff811115611aca57600080fd5b6119df848285016118a7565b60208152600061116d6020830184611a13565b60008251611afb8184602087016119e7565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681811415611b4b57611b4b611b1b565b6001019392505050565b600181811c90821680611b6957607f821691505b60208210811415611b8a57634e487b7160e01b600052602260045260246000fd5b50919050565b60008351611ba28184602088016119e7565b835190830190611bb68183602088016119e7565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611bf78160178501602088016119e7565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611c288160288401602088016119e7565b01602801949350505050565b6000816000190483118215151615611c4e57611c4e611b1b565b500290565b60008219821115611c6657611c66611b1b565b500190565b600081611c7a57611c7a611b1b565b50600019019056fe9dbfebaee4c898490164a8ab686838c633319f3806d3dea7cd93c1cfefb35e0722f59c2f02edbae5c421247f029fe3112c5a85f70b4a48f5d93b22ada9ea772ea2646970667358221220920d875e989f2099a266ef2b93ce53deb4615f5a9aaf39f0df1b88b77754e93d64736f6c634300080b0033" + "0ff9848463ffffffff1681518110610ae257610ae2611b05565b8051602090910120905061101260068a01826000610e0b565b505050808061102090611b31565b915050610f8c565b5060005b84518163ffffffff1610156110c857600061107a604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508861125890919063ffffffff16565b90506000611099878463ffffffff1681518110610ae257610ae2611b05565b805160209091012090506110b260068a01826001610e0b565b50505080806110c090611b31565b91505061102c565b506110d7600487018386611284565b50505050505050565b61050d8282610e37565b60008281526020848152604082208351611106928501906115b6565b506001949350505050565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b60209091015260607fb67aaf8c3d37a20d791807426a86a6bbc7b112706f57e87aecb8da953695759461116d6004840182611174565b9392505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b8282101561124c5783829060005260206000200180546111bf90611b55565b80601f01602080910402602001604051908101604052809291908181526020018280546111eb90611b55565b80156112385780601f1061120d57610100808354040283529160200191611238565b820191906000526020600020905b81548152906001019060200180831161121b57829003601f168201915b5050505050815260200190600101906111a0565b50505050905092915050565b6060828260405160200161126d929190611b90565b604051602081830303815290604052905092915050565b600082815260208481526040822083516111069285019061163a565b60008181526020839052604090208054606091906112bd90611b55565b80601f01602080910402602001604051908101604052809291908181526020018280546112e990611b55565b80156113365780601f1061130b57610100808354040283529160200191611336565b820191906000526020600020905b81548152906001019060200180831161131957829003601f168201915b5050505050905092915050565b6060600061138f6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d8152508461125890919063ffffffff16565b805160208201209091506113a66004860182611174565b95945050505050565b6113b982826109ec565b61050d576113c681611408565b6113d183602061141a565b6040516020016113e2929190611bbf565b60408051601f198184030181529082905262461bcd60e51b82526104fa91600401611ad6565b60606103876001600160a01b03831660145b60606000611429836002611c34565b611434906002611c53565b67ffffffffffffffff81111561144c5761144c6117ab565b6040519080825280601f01601f191660200182016040528015611476576020820181803683370190505b509050600360fc1b8160008151811061149157611491611b05565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106114c0576114c0611b05565b60200101906001600160f81b031916908160001a90535060006114e4846002611c34565b6114ef906001611c53565b90505b6001811115611567576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061152357611523611b05565b1a60f81b82828151811061153957611539611b05565b60200101906001600160f81b031916908160001a90535060049490941c9361156081611c6b565b90506114f2565b50831561116d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104fa565b8280546115c290611b55565b90600052602060002090601f0160209004810192826115e4576000855561162a565b82601f106115fd57805160ff191683800117855561162a565b8280016001018555821561162a579182015b8281111561162a57825182559160200191906001019061160f565b50611636929150611693565b5090565b828054828255906000526020600020908101928215611687579160200282015b8281111561168757825180516116779184916020909101906115b6565b509160200191906001019061165a565b506116369291506116a8565b5b808211156116365760008155600101611694565b808211156116365760006116bc82826116c5565b506001016116a8565b5080546116d190611b55565b6000825580601f106116e1575050565b601f0160209004906000526020600020908101906109d89190611693565b60006020828403121561171157600080fd5b81356001600160e01b03198116811461116d57600080fd5b60006020828403121561173b57600080fd5b813563ffffffff8116811461116d57600080fd5b60006020828403121561176157600080fd5b5035919050565b80356001600160a01b038116811461069957600080fd5b6000806040838503121561179257600080fd5b823591506117a260208401611768565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156117ea576117ea6117ab565b604052919050565b600082601f83011261180357600080fd5b813567ffffffffffffffff81111561181d5761181d6117ab565b611830601f8201601f19166020016117c1565b81815284602083860101111561184557600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561187557600080fd5b823567ffffffffffffffff81111561188c57600080fd5b611898858286016117f2565b9250506117a260208401611768565b600082601f8301126118b857600080fd5b8135602067ffffffffffffffff808311156118d5576118d56117ab565b8260051b6118e48382016117c1565b93845285810183019383810190888611156118fe57600080fd5b84880192505b8583101561193a5782358481111561191c5760008081fd5b61192a8a87838c01016117f2565b8352509184019190840190611904565b98975050505050505050565b6000806040838503121561195957600080fd5b823567ffffffffffffffff8082111561197157600080fd5b61197d868387016117f2565b9350602085013591508082111561199357600080fd5b506119a0858286016118a7565b9150509250929050565b6000602082840312156119bc57600080fd5b813567ffffffffffffffff8111156119d357600080fd5b6119df848285016117f2565b949350505050565b60005b83811015611a025781810151838201526020016119ea565b838111156103ef5750506000910152565b60008151808452611a2b8160208601602086016119e7565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015611a9457603f19888603018452611a82858351611a13565b94509285019290850190600101611a66565b5092979650505050505050565b600060208284031215611ab357600080fd5b813567ffffffffffffffff811115611aca57600080fd5b6119df848285016118a7565b60208152600061116d6020830184611a13565b60008251611afb8184602087016119e7565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681811415611b4b57611b4b611b1b565b6001019392505050565b600181811c90821680611b6957607f821691505b60208210811415611b8a57634e487b7160e01b600052602260045260246000fd5b50919050565b60008351611ba28184602088016119e7565b835190830190611bb68183602088016119e7565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611bf78160178501602088016119e7565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611c288160288401602088016119e7565b01602801949350505050565b6000816000190483118215151615611c4e57611c4e611b1b565b500290565b60008219821115611c6657611c66611b1b565b500190565b600081611c7a57611c7a611b1b565b50600019019056fe9dbfebaee4c898490164a8ab686838c633319f3806d3dea7cd93c1cfefb35e0722f59c2f02edbae5c421247f029fe3112c5a85f70b4a48f5d93b22ada9ea772ea2646970667358221220ad50a737979a965b108c28d1e5de4337a1ccb1e82d923d01df8920b5dcc6afe664736f6c634300080b0033" }; public static final String BINARY = @@ -39,7 +39,7 @@ public class DREvidenceAdminController extends Contract { public static final String[] SM_BINARY_ARRAY = { "608060405234801561001057600080fd5b50611d04806100206000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063a4ff64c2116100de578063c52a7b1211610097578063ea605f3d11610071578063ea605f3d14610309578063ea7eb79814610311578063fbd3f0bf14610324578063fd09e7d61461034757600080fd5b8063c52a7b12146102db578063de92755c146102ee578063e24df4fa1461030157600080fd5b8063a4ff64c214610262578063aa2ab25a14610275578063b5aed06f1461027d578063b6773ad8146102a0578063b70b2fbc146102b5578063c37fa93f146102c857600080fd5b80635472010b116101305780635472010b146101fc5780635ea854ef1461020f5780637181c35c1461022c578063728da5b3146102345780637c6dd5871461023c5780637f4d27b61461024f57600080fd5b80631673bbee1461017857806317d66dc8146101a15780631b3240b8146101b65780632b668b87146101cc57806345135492146101e15780634c9a1821146101e9575b600080fd5b61018b6101863660046117c2565b61035a565b6040516101989190611857565b60405180910390f35b6101b46101af3660046118d0565b61036d565b005b6101be600081565b604051908152602001610198565b6101d46103f1565b60405161019891906118fc565b6101b4610447565b6101b46101f736600461190f565b610499565b6101b461020a3660046118d0565b6104fc565b610217610521565b60405163ffffffff9091168152602001610198565b610217610585565b6102176105c6565b6101b461024a3660046119d4565b61061b565b6101b461025d366004611a09565b6107d0565b6101b46102703660046117c2565b6107e7565b6101b46108b0565b61029061028b3660046117c2565b6108ff565b6040519015158152602001610198565b6101be600080516020611caf83398151915281565b6101b46102c3366004611a6d565b610986565b6101b46102d636600461190f565b610a28565b6101b46102e93660046117c2565b610a85565b6102906102fc3660046118d0565b610ade565b61018b610b09565b6101b4610b1a565b61029061031f366004611ab2565b610db1565b6101be610332366004611adc565b60009081526065602052604090206001015490565b6101b46103553660046118d0565b610de6565b606061036760c983610e0b565b92915050565b6001600160a01b03811633146103e357604051636381e58960e11b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6103ed8282610e77565b5050565b60408051808201909152600b81526a636861696e5f6e616d653d60a81b602082015260609061044160ce7fc6dcc667e8a4adecaf7ec045ceb175ec1bc5aeff0fabf114f7d7e92ec6028d21610ede565b91505090565b600061045281610f81565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b602082015261049460cf600080516020611c8f8339815191526001610f8b565b505050565b60006104a481610f81565b60408051808201909152600d81526c746578745f6d61785f6c656e3d60981b60208201526104f67fb94ed1522660bcf87190b60edb89d36f5abe45df20f420179dc82bb4404e41a75b60cf9085610f8b565b50505050565b60008281526065602052604090206001015461051781610f81565b6104948383610fb7565b60408051808201909152600d81526c746578745f6d61785f6c656e3d60981b60208201526000906104417fb94ed1522660bcf87190b60edb89d36f5abe45df20f420179dc82bb4404e41a75b600090815260cf602052604090205463ffffffff1690565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b6020820152600090610441600080516020611c8f83398151915261056d565b6040805180820190915260128152717374725f61727261795f6d61785f6c656e3d60701b60208201526000906104417fd8d61f8b1cf1582bee15b4cf3c6d9d05ef2631b65c89d362e1057f698dc76afe61056d565b600061062681610f81565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b6020909101527f1ef121f667bed00cfcfc37c32099dffa7438068261cb3a514d94636781844482600061068060cd8361103d565b905060005b81518163ffffffff16101561072a57600060405180604001604052806018815260200177646174615f72696768745f63617465676f72793a6b65793d60401b815250905060006106fd878463ffffffff16815181106106e6576106e6611af5565b60200260200101518361112190919063ffffffff16565b8051602090910120905061071460cf826000610f8b565b505050808061072290611b21565b915050610685565b5060005b84518163ffffffff1610156107bc57600060405180604001604052806018815260200177646174615f72696768745f63617465676f72793a6b65793d60401b8152509050600061078f878463ffffffff16815181106106e6576106e6611af5565b805160209091012090506107a660cf826001610f8b565b50505080806107b490611b21565b91505061072e565b506107c960cd838661114d565b5050505050565b60006107db81610f81565b61049460c98484611174565b60006107f281610f81565b60006001600160a01b031660978360405161080d9190611b45565b908152604051908190036020019020546001600160a01b0316146103ed5761086b600080516020611caf83398151915260978460405161084d9190611b45565b908152604051908190036020019020546001600160a01b0316610e77565b600060978360405161087d9190611b45565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b60006108bb81610f81565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b6020820152610494600080516020611c8f8339815191525b60cf906000610f8b565b6000806001600160a01b031660978360405161091b9190611b45565b908152604051908190036020019020546001600160a01b03161461097957610367600080516020611caf83398151915260978460405161095b9190611b45565b908152604051908190036020019020546001600160a01b0316610ade565b506000919050565b919050565b600061099181610f81565b60006001600160a01b03166097846040516109ac9190611b45565b908152604051908190036020019020546001600160a01b03161415610494576109e3600080516020611caf83398151915283610fb7565b816097846040516109f49190611b45565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b6000610a3381610f81565b6040805180820190915260128152717374725f61727261795f6d61785f6c656e3d60701b60208201526104f67fd8d61f8b1cf1582bee15b4cf3c6d9d05ef2631b65c89d362e1057f698dc76afe6104ed565b6000610a9081610f81565b60408051808201909152600b81526a636861696e5f6e616d653d60a81b60208201526104f660ce7fc6dcc667e8a4adecaf7ec045ceb175ec1bc5aeff0fabf114f7d7e92ec6028d2185611330565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060610b1560c961134c565b905090565b600054610100900460ff1615808015610b3a5750600054600160ff909116105b80610b545750303b158015610b54575060005460ff166001145b610bb857604051636381e58960e11b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103da565b6000805460ff191660011790558015610bdb576000805461ff0019166101001790555b610be66000336113af565b610c0d6040518060400160405280600581526020016406269643a360dc1b81525033610986565b60408051808201909152600b81526a636861696e5f6e616d653d60a81b6020820152610c797fc6dcc667e8a4adecaf7ec045ceb175ec1bc5aeff0fabf114f7d7e92ec6028d2160408051808201909152600681526529b43aac34b760d11b602082015260ce9190611330565b505060408051808201909152600d81526c746578745f6d61785f6c656e3d60981b6020820152610ccd60cf7fb94ed1522660bcf87190b60edb89d36f5abe45df20f420179dc82bb4404e41a7611388610f8b565b50506040805180820190915260128152717374725f61727261795f6d61785f6c656e3d60701b6020820152610d2660cf7fd8d61f8b1cf1582bee15b4cf3c6d9d05ef2631b65c89d362e1057f698dc76afe6103e8610f8b565b505060408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b6020820152610d66600080516020611c8f8339815191526108f5565b50508015610dae576000805461ff0019169055604051600181527f962aa9df107bcee798aa1cede27b2de7fab57a1daae7109874a9a9170136cbfa9060200160405180910390a15b50565b60006001600160e01b03198216634df6077b60e11b14806103675750631d4fd6f360e31b6001600160e01b0319831614610367565b600082815260656020526040902060010154610e0181610f81565b6104948383610e77565b60606000610e576040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d8152508461112190919063ffffffff16565b80516020820120909150610e6e600486018261103d565b95945050505050565b610e818282610ade565b156103ed5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917fddf24a0d777ab37f0cd0acf6e2b0a75570d42c6500405e008f7f9a61836cf2a39190a45050565b6000818152602083905260409020805460609190610efb90611b61565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2790611b61565b8015610f745780601f10610f4957610100808354040283529160200191610f74565b820191906000526020600020905b815481529060010190602001808311610f5757829003601f168201915b5050505050905092915050565b610dae81336113b9565b6000828152602084905260409020805463ffffffff831663ffffffff1990911617905560019392505050565b610fc18282610ade565b6103ed5760008281526065602090815260408083206001600160a01b0385", - "1684529091529020805460ff19166001179055610ff93390565b6001600160a01b0316816001600160a01b0316837f3a8c19c5eddb5ca7fdd091f00e2b3978b86344c928af4d2d7f6733572cc06b4c60405160405180910390a45050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b8282101561111557838290600052602060002001805461108890611b61565b80601f01602080910402602001604051908101604052809291908181526020018280546110b490611b61565b80156111015780601f106110d657610100808354040283529160200191611101565b820191906000526020600020905b8154815290600101906020018083116110e457829003601f168201915b505050505081526020019060010190611069565b50505050905092915050565b60608282604051602001611136929190611b9c565b604051602081830303815290604052905092915050565b60008281526020848152604082208351611169928501906115c2565b506001949350505050565b60006111be6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d8152508461112190919063ffffffff16565b8051602082012090915060006111d7600487018361103d565b905060005b81518163ffffffff16101561127857600061122a604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508861112190919063ffffffff16565b90506000611249848463ffffffff16815181106106e6576106e6611af5565b8051602090910120905061126260068a01826000610f8b565b505050808061127090611b21565b9150506111dc565b5060005b84518163ffffffff1610156113185760006112ca604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508861112190919063ffffffff16565b905060006112e9878463ffffffff16815181106106e6576106e6611af5565b8051602090910120905061130260068a01826001610f8b565b505050808061131090611b21565b91505061127c565b5061132760048701838661114d565b50505050505050565b600082815260208481526040822083516111699285019061161f565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b60209091015260607f1ef121f667bed00cfcfc37c32099dffa7438068261cb3a514d946367818444826113a8600484018261103d565b9392505050565b6103ed8282610fb7565b6113c38282610ade565b6103ed576113d081611413565b6113db836020611425565b6040516020016113ec929190611bcb565b60408051601f1981840301815290829052636381e58960e11b82526103da916004016118fc565b60606103676001600160a01b03831660145b60606000611434836002611c40565b61143f906002611c5f565b67ffffffffffffffff8111156114575761145761170b565b6040519080825280601f01601f191660200182016040528015611481576020820181803683370190505b509050600360fc1b8160008151811061149c5761149c611af5565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106114cb576114cb611af5565b60200101906001600160f81b031916908160001a90535060006114ef846002611c40565b6114fa906001611c5f565b90505b6001811115611572576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061152e5761152e611af5565b1a60f81b82828151811061154457611544611af5565b60200101906001600160f81b031916908160001a90535060049490941c9361156b81611c77565b90506114fd565b5083156113a857604051636381e58960e11b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016103da565b82805482825590600052602060002090810192821561160f579160200282015b8281111561160f57825180516115ff91849160209091019061161f565b50916020019190600101906115e2565b5061161b92915061169f565b5090565b82805461162b90611b61565b90600052602060002090601f01602090048101928261164d5760008555611693565b82601f1061166657805160ff1916838001178555611693565b82800160010185558215611693579182015b82811115611693578251825591602001919060010190611678565b5061161b9291506116bc565b8082111561161b5760006116b382826116d1565b5060010161169f565b5b8082111561161b57600081556001016116bd565b5080546116dd90611b61565b6000825580601f106116ed575050565b601f016020900490600052602060002090810190610dae91906116bc565b63b95aa35560e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561174a5761174a61170b565b604052919050565b600082601f83011261176357600080fd5b813567ffffffffffffffff81111561177d5761177d61170b565b611790601f8201601f1916602001611721565b8181528460208386010111156117a557600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156117d457600080fd5b813567ffffffffffffffff8111156117eb57600080fd5b6117f784828501611752565b949350505050565b60005b8381101561181a578181015183820152602001611802565b838111156104f65750506000910152565b600081518084526118438160208601602086016117ff565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156118ac57603f1988860301845261189a85835161182b565b9450928501929085019060010161187e565b5092979650505050505050565b80356001600160a01b038116811461098157600080fd5b600080604083850312156118e357600080fd5b823591506118f3602084016118b9565b90509250929050565b6020815260006113a8602083018461182b565b60006020828403121561192157600080fd5b813563ffffffff811681146113a857600080fd5b600082601f83011261194657600080fd5b8135602067ffffffffffffffff808311156119635761196361170b565b8260051b611972838201611721565b938452858101830193838101908886111561198c57600080fd5b84880192505b858310156119c8578235848111156119aa5760008081fd5b6119b88a87838c0101611752565b8352509184019190840190611992565b98975050505050505050565b6000602082840312156119e657600080fd5b813567ffffffffffffffff8111156119fd57600080fd5b6117f784828501611935565b60008060408385031215611a1c57600080fd5b823567ffffffffffffffff80821115611a3457600080fd5b611a4086838701611752565b93506020850135915080821115611a5657600080fd5b50611a6385828601611935565b9150509250929050565b60008060408385031215611a8057600080fd5b823567ffffffffffffffff811115611a9757600080fd5b611aa385828601611752565b9250506118f3602084016118b9565b600060208284031215611ac457600080fd5b81356001600160e01b0319811681146113a857600080fd5b600060208284031215611aee57600080fd5b5035919050565b63b95aa35560e01b600052603260045260246000fd5b63b95aa35560e01b600052601160045260246000fd5b600063ffffffff80831681811415611b3b57611b3b611b0b565b6001019392505050565b60008251611b578184602087016117ff565b9190910192915050565b600181811c90821680611b7557607f821691505b60208210811415611b965763b95aa35560e01b600052602260045260246000fd5b50919050565b60008351611bae8184602088016117ff565b835190830190611bc28183602088016117ff565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611c038160178501602088016117ff565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611c348160288401602088016117ff565b01602801949350505050565b6000816000190483118215151615611c5a57611c5a611b0b565b500290565b60008219821115611c7257611c72611b0b565b500190565b600081611c8657611c86611b0b565b50600019019056fee4f23932eff8c7a5c12e0a6fb9b7dc66fcf815724641a77260df59fd307f9a64cda5c054d055f48a2866e1a28d72f8145e422f1db1872bc4c9fe2888702c9f8da2646970667358221220bdd64c3f13f6bba657e18320865bf198dadc8a12e6f522bc94679a4cfc70200164736f6c634300080b0033" + "1684529091529020805460ff19166001179055610ff93390565b6001600160a01b0316816001600160a01b0316837f3a8c19c5eddb5ca7fdd091f00e2b3978b86344c928af4d2d7f6733572cc06b4c60405160405180910390a45050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b8282101561111557838290600052602060002001805461108890611b61565b80601f01602080910402602001604051908101604052809291908181526020018280546110b490611b61565b80156111015780601f106110d657610100808354040283529160200191611101565b820191906000526020600020905b8154815290600101906020018083116110e457829003601f168201915b505050505081526020019060010190611069565b50505050905092915050565b60608282604051602001611136929190611b9c565b604051602081830303815290604052905092915050565b60008281526020848152604082208351611169928501906115c2565b506001949350505050565b60006111be6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d8152508461112190919063ffffffff16565b8051602082012090915060006111d7600487018361103d565b905060005b81518163ffffffff16101561127857600061122a604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508861112190919063ffffffff16565b90506000611249848463ffffffff16815181106106e6576106e6611af5565b8051602090910120905061126260068a01826000610f8b565b505050808061127090611b21565b9150506111dc565b5060005b84518163ffffffff1610156113185760006112ca604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508861112190919063ffffffff16565b905060006112e9878463ffffffff16815181106106e6576106e6611af5565b8051602090910120905061130260068a01826001610f8b565b505050808061131090611b21565b91505061127c565b5061132760048701838661114d565b50505050505050565b600082815260208481526040822083516111699285019061161f565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b60209091015260607f1ef121f667bed00cfcfc37c32099dffa7438068261cb3a514d946367818444826113a8600484018261103d565b9392505050565b6103ed8282610fb7565b6113c38282610ade565b6103ed576113d081611413565b6113db836020611425565b6040516020016113ec929190611bcb565b60408051601f1981840301815290829052636381e58960e11b82526103da916004016118fc565b60606103676001600160a01b03831660145b60606000611434836002611c40565b61143f906002611c5f565b67ffffffffffffffff8111156114575761145761170b565b6040519080825280601f01601f191660200182016040528015611481576020820181803683370190505b509050600360fc1b8160008151811061149c5761149c611af5565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106114cb576114cb611af5565b60200101906001600160f81b031916908160001a90535060006114ef846002611c40565b6114fa906001611c5f565b90505b6001811115611572576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061152e5761152e611af5565b1a60f81b82828151811061154457611544611af5565b60200101906001600160f81b031916908160001a90535060049490941c9361156b81611c77565b90506114fd565b5083156113a857604051636381e58960e11b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016103da565b82805482825590600052602060002090810192821561160f579160200282015b8281111561160f57825180516115ff91849160209091019061161f565b50916020019190600101906115e2565b5061161b92915061169f565b5090565b82805461162b90611b61565b90600052602060002090601f01602090048101928261164d5760008555611693565b82601f1061166657805160ff1916838001178555611693565b82800160010185558215611693579182015b82811115611693578251825591602001919060010190611678565b5061161b9291506116bc565b8082111561161b5760006116b382826116d1565b5060010161169f565b5b8082111561161b57600081556001016116bd565b5080546116dd90611b61565b6000825580601f106116ed575050565b601f016020900490600052602060002090810190610dae91906116bc565b63b95aa35560e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561174a5761174a61170b565b604052919050565b600082601f83011261176357600080fd5b813567ffffffffffffffff81111561177d5761177d61170b565b611790601f8201601f1916602001611721565b8181528460208386010111156117a557600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156117d457600080fd5b813567ffffffffffffffff8111156117eb57600080fd5b6117f784828501611752565b949350505050565b60005b8381101561181a578181015183820152602001611802565b838111156104f65750506000910152565b600081518084526118438160208601602086016117ff565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156118ac57603f1988860301845261189a85835161182b565b9450928501929085019060010161187e565b5092979650505050505050565b80356001600160a01b038116811461098157600080fd5b600080604083850312156118e357600080fd5b823591506118f3602084016118b9565b90509250929050565b6020815260006113a8602083018461182b565b60006020828403121561192157600080fd5b813563ffffffff811681146113a857600080fd5b600082601f83011261194657600080fd5b8135602067ffffffffffffffff808311156119635761196361170b565b8260051b611972838201611721565b938452858101830193838101908886111561198c57600080fd5b84880192505b858310156119c8578235848111156119aa5760008081fd5b6119b88a87838c0101611752565b8352509184019190840190611992565b98975050505050505050565b6000602082840312156119e657600080fd5b813567ffffffffffffffff8111156119fd57600080fd5b6117f784828501611935565b60008060408385031215611a1c57600080fd5b823567ffffffffffffffff80821115611a3457600080fd5b611a4086838701611752565b93506020850135915080821115611a5657600080fd5b50611a6385828601611935565b9150509250929050565b60008060408385031215611a8057600080fd5b823567ffffffffffffffff811115611a9757600080fd5b611aa385828601611752565b9250506118f3602084016118b9565b600060208284031215611ac457600080fd5b81356001600160e01b0319811681146113a857600080fd5b600060208284031215611aee57600080fd5b5035919050565b63b95aa35560e01b600052603260045260246000fd5b63b95aa35560e01b600052601160045260246000fd5b600063ffffffff80831681811415611b3b57611b3b611b0b565b6001019392505050565b60008251611b578184602087016117ff565b9190910192915050565b600181811c90821680611b7557607f821691505b60208210811415611b965763b95aa35560e01b600052602260045260246000fd5b50919050565b60008351611bae8184602088016117ff565b835190830190611bc28183602088016117ff565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611c038160178501602088016117ff565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611c348160288401602088016117ff565b01602801949350505050565b6000816000190483118215151615611c5a57611c5a611b0b565b500290565b60008219821115611c7257611c72611b0b565b500190565b600081611c8657611c86611b0b565b50600019019056fee4f23932eff8c7a5c12e0a6fb9b7dc66fcf815724641a77260df59fd307f9a64cda5c054d055f48a2866e1a28d72f8145e422f1db1872bc4c9fe2888702c9f8da2646970667358221220de6bce49b038251aea0399bdb87cd4d75a032c8d92a88497f9eaa14f03ff520664736f6c634300080b0033" }; public static final String SM_BINARY = diff --git a/java/DREvidenceReviewController.java b/java/DREvidenceReviewController.java index 227615c56f086e0c5bf7477bc2e1bea2631b0aee..d2dc50672b2a36072da6c30f0085b03bf1da8ec6 100644 --- a/java/DREvidenceReviewController.java +++ b/java/DREvidenceReviewController.java @@ -34,20 +34,20 @@ import org.fisco.bcos.sdk.v3.transaction.model.exception.ContractException; @SuppressWarnings("unchecked") public class DREvidenceReviewController extends Contract { public static final String[] BINARY_ARRAY = { - "608060405234801561001057600080fd5b5061399a806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80635edea296116100ad578063a217fddf11610071578063a217fddf14610293578063d547741f1461029b578063e6947731146102ae578063efddd7f8146102c1578063fc4eb482146102d457600080fd5b80635edea296146102085780636e963a591461022a5780637d3dfe7d1461024d5780638e7daf821461026057806391d148541461028057600080fd5b806336568abe116100f457806336568abe146101a9578063378d85fa146101bc5780633dd296b5146101cf5780634cea35a6146101e2578063588f695d146101f557600080fd5b806301ffc9a714610126578063248a9ca31461014e5780632f2ff15d1461017f57806332d7432714610194575b600080fd5b610139610134366004612f67565b6102e7565b60405190151581526020015b60405180910390f35b61017161015c366004612f91565b60009081526065602052604090206001015490565b604051908152602001610145565b61019261018d366004612fc1565b61031e565b005b61017160008051602061394583398151915281565b6101926101b7366004612fc1565b610348565b6101926101ca3660046130a2565b6103cb565b6101926101dd366004613105565b61040a565b6101396101f0366004613149565b6104ac565b6101716102033660046131be565b610533565b61021b610216366004613213565b610548565b60405161014593929190613340565b61023d610238366004613377565b61056d565b60405161014594939291906133ca565b61023d61025b366004613149565b610591565b61027361026e3660046134b4565b6105b1565b604051610145919061350d565b61013961028e366004612fc1565b6105d6565b610171600081565b6101926102a9366004612fc1565b610601565b6101716102bc366004613520565b610626565b6101926102cf36600461358b565b61063f565b6101926102e2366004613149565b6106ac565b60006001600160e01b03198216637965db0b60e01b148061031857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526065602052604090206001015461033981610775565b6103438383610782565b505050565b6001600160a01b03811633146103bd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6103c78282610808565b5050565b6103d560c961086f565b6103fe604051806040016040528060088152602001673932bb34b2bbb2b960c11b8152506108cf565b6103c760c98383610a26565b600061041581610775565b60006001600160a01b0316609784604051610430919061365c565b908152604051908190036020019020546001600160a01b031614156103435761046760008051602061394583398151915283610782565b81609784604051610478919061365c565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b6000806001600160a01b03166097836040516104c8919061365c565b908152604051908190036020019020546001600160a01b03161461052657610318600080516020613945833981519152609784604051610508919061365c565b908152604051908190036020019020546001600160a01b03166105d6565b506000919050565b919050565b600061054160c98484610ba9565b9392505050565b600060608061055c60c98989898989610cb2565b925092509250955095509592505050565b60006060808061058060c9888888610eeb565b935093509350935093509350935093565b6000606080806105a260c986611145565b93509350935093509193509193565b606060006105c160c9858561117c565b90506105ce60c98261121b565b949350505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526065602052604090206001015461061c81610775565b6103438383610808565b600061063660c98686868661124b565b95945050505050565b61064960c961086f565b610672604051806040016040528060088152602001673932bb34b2bbb2b960c11b8152506108cf565b61068160c9868686868661139f565b600061068e60c987611709565b90506106a48661069f60018461368e565b611775565b505050505050565b60006106b781610775565b60006001600160a01b03166097836040516106d2919061365c565b908152604051908190036020019020546001600160a01b0316146103c757610730600080516020613945833981519152609784604051610712919061365c565b908152604051908190036020019020546001600160a01b0316610808565b6000609783604051610742919061365c565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b61077f81336117c0565b50565b61078c82826105d6565b6103c75760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556107c43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61081282826105d6565b156103c75760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61087881611819565b60408051808201909152601981527f436f6e747261637420697320696e61636365737369626c652e0000000000000060208201529015156001146103c75760405162461bcd60e51b81526004016103b4919061350d565b6000806108dd60c933611835565b90925090506001821515146109345760405162461bcd60e51b815260206004820152601960248201527f53656e646572206973206e6f7420726567697374657265642e0000000000000060448201526064016103b4565b600061094160c9836118ed565b90506109ba60405180604001604052806005815260200164195e1a5cdd60da1b8152506109b46109aa61099f886040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b81525061191790919063ffffffff16565b805160209091012090565b6006850190611943565b906119e6565b1515600114610a205760405162461bcd60e51b815260206004820152602c60248201527f5573657220776974686f757420636f72726573706f6e64696e6720726f6c652060448201526b3832b936b4b9b9b4b7b7399760a11b60648201526084016103b4565b50505050565b610a308383611a0b565b1515600114610a515760405162461bcd60e51b81526004016103b4906136b3565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090610a7a9084611917565b8051906020012090506000610abe6040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508461191790919063ffffffff16565b90506000610acd868484611a66565b905060005b8163ffffffff168163ffffffff161015610ba0576000610b30610afa8363ffffffff16611ac7565b60408051808201909152600e81526d1d3932bb34b2bb9d34b73232bc1d60911b6020820152610b2a908990611917565b90611917565b90506000610b3f898784611b63565b9050610b8b89826040518060400160405280600681526020016573746174757360d01b81525060405180604001604052806008815260200167191a5cd8589b195960c21b815250611bc4565b50508080610b98906136df565b915050610ad2565b50505050505050565b6000610beb8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0b92505050565b1515600114610c0c5760405162461bcd60e51b81526004016103b4906136b3565b6000610c6a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b602082015292915050611917565b805190602001209050610ca385826040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611a66565b63ffffffff1695945050505050565b6000606080610cf78989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0b92505050565b1515600114610d185760405162461bcd60e51b81526004016103b4906136b3565b6000610d7689898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b602082015292915050611917565b8051906020012090506000610df48b83610def6040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119179050565b611a66565b90508063ffffffff168663ffffffff1610610e415760405162461bcd60e51b815260206004820152600d60248201526c0d2dcecc2d8d2c840d2dcc8caf609b1b60448201526064016103b4565b6000610ec88c84610ec3610e5a8b63ffffffff16611ac7565b610b2a6040518060400160405280600e81526020016d1d3932bb34b2bb9d34b73232bc1d60911b8152508f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119179050565b611b63565b9050610ed48c82611bf3565b929f909e50919c50909a5050505050505050505050565b60006060806060610f328888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0b92505050565b1515600114610f535760405162461bcd60e51b81526004016103b4906136b3565b6000610fb188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b602082015292915050611917565b8051906020012090506000610fec8a836040518060400160405280600d81526020016c7265766965775f636f756e", - "743d60981b815250611a66565b90508063ffffffff168763ffffffff161061103a5760405162461bcd60e51b815260206004820152600e60248201526d0d2d2dcecc2d8d2c840d2dcc8caf60931b60448201526064016103b4565b600061107d8b84610ec36110538c63ffffffff16611ac7565b60408051808201909152600d81526c3932bb34b2bb9d34b73232bc1d60991b602082015290611917565b90506110ad8b826040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b815250611cbb565b95506000806110bc8d84611d15565b93509350505060006110ed8e856040518060400160405280600681526020016573746174757360d01b815250611cbb565b905061112260405180604001604052806008815260200167191a5cd8589b195960c21b815250826119e690919063ffffffff16565b99508197506111328e8585611eaf565b9650505050505050945094509450949050565b60006060806060600061115f878780519060200120612107565b905061116b8782611bf3565b929a91995097509095509350505050565b6000806111b0846040518060400160405280600681526020016572657669657760d01b81525061191790919063ffffffff16565b905060005b83518163ffffffff16101561120a576111f6848263ffffffff16815181106111df576111df613703565b60200260200101518361191790919063ffffffff16565b915080611202816136df565b9150506111b5565b508051602090910120949350505050565b6060610541836040518060400160405280600b81526020016a32b4b21d3932bb34b2bb9d60a91b8152508461217b565b600061128d8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0b92505050565b15156001146112ae5760405162461bcd60e51b81526004016103b4906136b3565b600061130c86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b602082015292915050611917565b80519060200120905060006113806040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b81525086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119179050565b905061138d888383611a66565b63ffffffff1698975050505050505050565b6113a98685612190565b6113b38686611a0b565b15156001146113d45760405162461bcd60e51b81526004016103b4906136b3565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906113fd9087611917565b805190602001209050600061141388888761117c565b905061143f88826040518060400160405280600681526020016572657669657760d01b81525087612228565b6114828882604051806040016040528060078152602001663b32b939b4b7b760c91b81525060405180606001604052806036815260200161390f60369139611bc4565b6114aa8882604051806040016040528060048152602001637564726960e01b8152508a611bc4565b6114d988826040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b81525089611bc4565b61150b88826040518060400160405280600e81526020016d0e4caecd2caee88c2e8c290c2e6d60931b815250886122fb565b61155388826040518060400160405280600681526020016573746174757360d01b8152506040518060400160405280600681526020016561637469766560d01b815250611bc4565b600061158e6040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508861191790919063ffffffff16565b9050600061159d8a8584611a66565b90506115b58a85846115b0856001613719565b61232e565b6116028a856115fc6115cc8563ffffffff16611ac7565b60408051808201909152600e81526d1d3932bb34b2bb9d34b73232bc1d60911b6020820152610b2a908e90611917565b86612361565b6116328a856040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611a66565b905061166c8a856040518060400160405280600d81526020016c7265766965775f636f756e743d60981b8152508460016115b09190613719565b6116838a856115fc6110538563ffffffff16611ac7565b61168e8a8985612394565b6116b88a846040518060400160405280600681526020016572657669657760d01b815250886124e5565b60006116e88b6040518060400160405280600b81526020016a32b4b21d3932bb34b2bb9d60a91b8152508661217b565b90506116fc8b82805190602001208661264a565b5050505050505050505050565b60008061173c83604051806040016040528060058152602001641c9a59da1d60da1b81525061191790919063ffffffff16565b8051906020012090506105ce84826040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611a66565b8063ffffffff168260405161178a919061365c565b6040519081900381209033907f88ac03187be67c1563b7eb5df904b3339aa5af5e26f3df98b18f1c993ad2118a90600090a45050565b6117ca82826105d6565b6103c7576117d7816126c8565b6117e28360206126da565b6040516020016117f3929190613741565b60408051601f198184030181529082905262461bcd60e51b82526103b49160040161350d565b60008061182583612875565b63ffffffff166001149392505050565b6001600160a01b03811660009081526020839052604081208054606091839161185d906137b6565b80601f0160208091040260200160405190810160405280929190818152602001828054611889906137b6565b80156118d65780601f106118ab576101008083540402835291602001916118d6565b820191906000526020600020905b8154815290600101906020018083116118b957829003601f168201915b5050835115159650929450505050505b9250929050565b60008260010182604051611901919061365c565b9081526020016040518091039020905092915050565b6060828260405160200161192c9291906137f1565b604051602081830303815290604052905092915050565b6000818152602083905260409020805460609190611960906137b6565b80601f016020809104026020016040519081016040528092919081815260200182805461198c906137b6565b80156119d95780601f106119ae576101008083540402835291602001916119d9565b820191906000526020600020905b8154815290600101906020018083116119bc57829003601f168201915b5050505050905092915050565b6000815183511480156105415750508051602091820120825192909101919091201490565b600080611a5c611a4084604051806040016040528060048152602001637564726960e01b81525061191790919063ffffffff16565b8051602091820120600090815260078701909152604090205490565b1515949350505050565b6000828152600284016020526040812060080154611a965760405162461bcd60e51b81526004016103b490613817565b6105ce82805190602001208560020160008681526020019081526020016000206003016128f090919063ffffffff16565b60606000611ad483612909565b60010190506000816001600160401b03811115611af357611af3612fed565b6040519080825280601f01601f191660200182016040528015611b1d576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611b5657611b5b565b611b27565b509392505050565b6000828152600284016020526040812060080154611b935760405162461bcd60e51b81526004016103b490613817565b6105ce82805190602001208560020160008681526020019081526020016000206004016128dd90919063ffffffff16565b81516020808401919091206000858152600280880190935260409020611bec920190836129e1565b5050505050565b60006060806060600080611c078888611d15565b9350935050506000611c3889896040518060400160405280600681526020016573746174757360d01b815250611cbb565b9050611c6d60405180604001604052806008815260200167191a5cd8589b195960c21b815250826119e690919063ffffffff16565b9650819450611c7d898985611eaf565b9350611cad89896040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b815250611cbb565b955050505092959194509250565b6000828152600284016020526040902060080154606090611cee5760405162461bcd60e51b81526004016103b490613817565b815160208084019190912060008581526002808801909352604090206105ce920190611943565b6000818152600283016020526040812060088101548154839260609283928115159190839060068201908290611d4a906137b6565b80601f0160208091040260200160405190810160405280929190818152602001828054611d76906137b6565b8015611dc35780601f10611d9857610100808354040283529160200191611dc3565b820191906000526020600020905b815481529060010190602001808311611da657829003601f168201915b5050505050915080805480602002602001604051908101604052809291908181526020016000905b82821015611e97578382906000526020600020018054611e0a906137b6565b80601f0160208091040260200160405190810160405280929190818152602001828054611e36906137b6565b8015611e835780601f10611e5857610100808354040283529160200191611e83565b820191906000526020600020905b815481529060010190602001808311611e6657829003601f168201915b505050505081526020019060010190611deb565b50505050905094509450945094505092959194509250565b606060028151611ebf919061385b565b15611f085760405162461bcd60e51b81526020600482015260196024820152783b30b934b0b13632a230ba30903632b733ba341032b93937b960391b60448201526064016103b4565b6000611f148585612a08565b90506000611f228685612a4e565b90506000805b82518163ffffffff161015611fa7576000838263ffffffff1681518110611f5157611f51613703565b602002602001015190506000611f7a82805190602001208760070161194390919063ffffffff16565b805190915015611f925783611f8e816136df565b9450505b50508080611f9f906136df565b915050611f28565b5063ffffffff8116156120fd57600080611fc283600261387d565b63ffffffff166001600160401b03811115611fdf57611fdf612fed565b", - "60405190808252806020026020018201604052801561201257816020015b6060815260200190600190039081611ffd5790505b50905060005b84518163ffffffff1610156120f8576000858263ffffffff168151811061204157612041613703565b60200260200101519050600061206a82805190602001208960070161194390919063ffffffff16565b8051909150156120e35781848663ffffffff168151811061208d5761208d613703565b602090810291909101015280846120a5876001613719565b63ffffffff16815181106120bb576120bb613703565b602002602001018190525085806120d1906136df565b96506120e09050856002613719565b94505b505080806120f0906136df565b915050612018565b509450505b5050509392505050565b60008181526003830160205260408120546121645760405162461bcd60e51b815260206004820152601f60248201527f45766964656e636553746f726167653a20656964206e6f74206578697374730060448201526064016103b4565b506000908152600391909101602052604090205490565b60606105ce61218983612ab1565b8490611917565b60008151116121cd5760405162461bcd60e51b81526020600482015260096024820152683134b21032b93937b960b91b60448201526064016103b4565b6121d78282612ac8565b15156001146103c75760405162461bcd60e51b815260206004820152601e60248201527f626974206e6f74207265676973746572206f6e207468697320636861696e000060448201526064016103b4565b6000838152600285016020526040902060080154156122955760405162461bcd60e51b8152602060048201526024808201527f45766964656e636553746f726167653a207564726920616c72656164792065786044820152636973747360e01b60648201526084016103b4565b6000838152600285016020908152604090912083516122b692850190612e1e565b506000838152600285016020908152604090912082516122de92600690920191840190612ea2565b505050600090815260029091016020526040902042600890910155565b611bec828051906020012082866002016000878152602001908152602001600020600101612af89092919063ffffffff16565b611bec828051906020012082866002016000878152602001908152602001600020600301612b149092919063ffffffff16565b611bec828051906020012082866002016000878152602001908152602001600020600401612b409092919063ffffffff16565b600083600101836040516123a8919061365c565b908152604080516020928190038301812081830190925260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b9201919091529050600061241e7f8e7e22a149a62d266f1366830ad13fadc3d0c42cdbb2dca110769fc88fb0ddbb600090815260098401602052604090205490565b9050600061245d61099f61243184612b55565b60408051808201909152600f81526e32afb932bb34b2bb9d34b73232bc1d60891b602082015290611917565b6000818152600885016020526040902085905590506040805180820190915260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b602090910152610ba07f8e7e22a149a62d266f1366830ad13fadc3d0c42cdbb2dca110769fc88fb0ddbb6124ce8460016138a9565b600091825260098601602052604090912055600190565b600281516124f3919061385b565b1561253c5760405162461bcd60e51b81526020600482015260196024820152783b30b934b0b13632a230ba30903632b733ba341032b93937b960391b60448201526064016103b4565b60006125488585612a08565b905060005b82518163ffffffff1610156106a4576000838263ffffffff168151811061257657612576613703565b602002602001015190506000848360016125909190613719565b63ffffffff16815181106125a6576125a6613703565b602002602001015190506125bb888784612b64565b151560011461261d5760405162461bcd60e51b815260206004820152602860248201527f50617274206f66207661726961626c6544617461206669656c64206973206e6f6044820152673a1030b63637bbb760c11b60648201526084016103b4565b81516020830120612633906007860190836129e1565b5050506002816126439190613719565b905061254d565b6000828152600384016020526040902054156126b45760405162461bcd60e51b815260206004820152602360248201527f45766964656e636553746f726167653a2062696420616c72656164792065786960448201526273747360e81b60648201526084016103b4565b600091825260039092016020526040902055565b60606103186001600160a01b03831660145b606060006126e98360026138c1565b6126f49060026138a9565b6001600160401b0381111561270b5761270b612fed565b6040519080825280601f01601f191660200182016040528015612735576020820181803683370190505b509050600360fc1b8160008151811061275057612750613703565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061277f5761277f613703565b60200101906001600160f81b031916908160001a90535060006127a38460026138c1565b6127ae9060016138a9565b90505b6001811115612826576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106127e2576127e2613703565b1a60f81b8282815181106127f8576127f8613703565b60200101906001600160f81b031916908160001a90535060049490941c9361281f816138e0565b90506127b1565b5083156105415760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016103b4565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b60208201526000906105417f9dbfebaee4c898490164a8ab686838c633319f3806d3dea7cd93c1cfefb35e07600090815260068501602052604090205463ffffffff1690565b6000908152602091909152604090205490565b6000908152602091909152604090205463ffffffff1690565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106129485772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612974576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061299257662386f26fc10000830492506010015b6305f5e10083106129aa576305f5e100830492506008015b61271083106129be57612710830492506004015b606483106129d0576064830492506002015b600a83106103185760010192915050565b600082815260208481526040822083516129fd92850190612e1e565b506001949350505050565b6000818152600283016020526040812060080154612a385760405162461bcd60e51b81526004016103b490613817565b5060009081526002919091016020526040902090565b60606000612a9a6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d8152508461191790919063ffffffff16565b805160208201209091506106366004860182612be7565b606061031882612ac081612ccb565b600101612d35565b60008260010182604051612adc919061365c565b908152604051908190036020019020600b015415159392505050565b600082815260208481526040822083516129fd92850190612ea2565b6000828152602084905260409020805463ffffffff831663ffffffff1990911617905560019392505050565b60009182526020929092526040902055600190565b606061031882612ac084612ccb565b600080612ba883610b2a604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508761191790919063ffffffff16565b80516020820120909150612bd360068701826000908152602091909152604090205463ffffffff1690565b63ffffffff16600114925050509392505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015612cbf578382906000526020600020018054612c32906137b6565b80601f0160208091040260200160405190810160405280929190818152602001828054612c5e906137b6565b8015612cab5780601f10612c8057610100808354040283529160200191612cab565b820191906000526020600020905b815481529060010190602001808311612c8e57829003601f168201915b505050505081526020019060010190612c13565b50505050905092915050565b600080608083901c15612ce35760809290921c916010015b604083901c15612cf85760409290921c916008015b602083901c15612d0d5760209290921c916004015b601083901c15612d225760109290921c916002015b600883901c156103185760010192915050565b6060826000612d458460026138c1565b6001600160401b03811115612d5c57612d5c612fed565b6040519080825280601f01601f191660200182016040528015612d86576020820181803683370190505b5090506000612d968560026138c1565b90505b8015612e15576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110612dc757612dc7613703565b1a60f81b82612dd76001846138f7565b81518110612de757612de7613703565b60200101906001600160f81b031916908160001a90535060049290921c91612e0e816138e0565b9050612d99565b50949350505050565b828054612e2a906137b6565b90600052602060002090601f016020900481019282612e4c5760008555612e92565b82601f10612e6557805160ff1916838001178555612e92565b82800160010185558215612e92579182015b82811115612e92578251825591602001919060010190612e77565b50612e9e929150612efb565b5090565b828054828255906000526020600020908101928215612eef579160200282015b82811115612eef5782518051612edf918491602090910190612e1e565b5091602001919060010190612ec2565b50612e9e929150612f10565b5b80821115612e9e5760008155600101612efc565b80821115612e9e576000612f248282612f2d565b50600101612f10565b508054612f39906137b6565b6000825580601f10612f49575050565b601f01602090049060005260206000209081019061077f9190612efb565b600060208284031215612f7957600080fd5b81356001600160e01b03198116811461054157600080fd5b600060208284031215612fa357600080fd5b5035919050565b80356001600160a01b038116811461052e57600080fd5b60008060408385031215612fd457600080fd5b82359150612fe460208401", - "612faa565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561302b5761302b612fed565b604052919050565b600082601f83011261304457600080fd5b81356001600160401b0381111561305d5761305d612fed565b613070601f8201601f1916602001613003565b81815284602083860101111561308557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156130b557600080fd5b82356001600160401b03808211156130cc57600080fd5b6130d886838701613033565b935060208501359150808211156130ee57600080fd5b506130fb85828601613033565b9150509250929050565b6000806040838503121561311857600080fd5b82356001600160401b0381111561312e57600080fd5b61313a85828601613033565b925050612fe460208401612faa565b60006020828403121561315b57600080fd5b81356001600160401b0381111561317157600080fd5b6105ce84828501613033565b60008083601f84011261318f57600080fd5b5081356001600160401b038111156131a657600080fd5b6020830191508360208285010111156118e657600080fd5b600080602083850312156131d157600080fd5b82356001600160401b038111156131e757600080fd5b6131f38582860161317d565b90969095509350505050565b803563ffffffff8116811461052e57600080fd5b60008060008060006060868803121561322b57600080fd5b85356001600160401b038082111561324257600080fd5b61324e89838a0161317d565b9097509550602088013591508082111561326757600080fd5b506132748882890161317d565b90945092506132879050604087016131ff565b90509295509295909350565b60005b838110156132ae578181015183820152602001613296565b83811115610a205750506000910152565b600081518084526132d7816020860160208601613293565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156133335782840389526133218483516132bf565b98850198935090840190600101613309565b5091979650505050505050565b831515815260606020820152600061335b60608301856132eb565b828103604084015261336d81856132eb565b9695505050505050565b60008060006040848603121561338c57600080fd5b83356001600160401b038111156133a257600080fd5b6133ae8682870161317d565b90945092506133c19050602085016131ff565b90509250925092565b84151581526080602082015260006133e560808301866132bf565b82810360408401526133f781866132eb565b9050828103606084015261340b81856132eb565b979650505050505050565b600082601f83011261342757600080fd5b813560206001600160401b038083111561344357613443612fed565b8260051b613452838201613003565b938452858101830193838101908886111561346c57600080fd5b84880192505b858310156134a85782358481111561348a5760008081fd5b6134988a87838c0101613033565b8352509184019190840190613472565b98975050505050505050565b600080604083850312156134c757600080fd5b82356001600160401b03808211156134de57600080fd5b6134ea86838701613033565b9350602085013591508082111561350057600080fd5b506130fb85828601613416565b60208152600061054160208301846132bf565b6000806000806040858703121561353657600080fd5b84356001600160401b038082111561354d57600080fd5b6135598883890161317d565b9096509450602087013591508082111561357257600080fd5b5061357f8782880161317d565b95989497509550505050565b600080600080600060a086880312156135a357600080fd5b85356001600160401b03808211156135ba57600080fd5b6135c689838a01613033565b965060208801359150808211156135dc57600080fd5b6135e889838a01613033565b955060408801359150808211156135fe57600080fd5b61360a89838a01613416565b9450606088013591508082111561362057600080fd5b61362c89838a01613416565b9350608088013591508082111561364257600080fd5b5061364f88828901613416565b9150509295509295909350565b6000825161366e818460208701613293565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff838116908316818110156136ab576136ab613678565b039392505050565b6020808252601290820152713ab23934903737ba1037b71031b430b4b71760711b604082015260600190565b600063ffffffff808316818114156136f9576136f9613678565b6001019392505050565b634e487b7160e01b600052603260045260246000fd5b600063ffffffff80831681851680830382111561373857613738613678565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613779816017850160208801613293565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516137aa816028840160208801613293565b01602801949350505050565b600181811c908216806137ca57607f821691505b602082108114156137eb57634e487b7160e01b600052602260045260246000fd5b50919050565b60008351613803818460208801613293565b835190830190613738818360208801613293565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b60008261387857634e487b7160e01b600052601260045260246000fd5b500690565b600063ffffffff808316818516818304811182151516156138a0576138a0613678565b02949350505050565b600082198211156138bc576138bc613678565b500190565b60008160001904831182151516156138db576138db613678565b500290565b6000816138ef576138ef613678565b506000190190565b60008282101561390957613909613678565b50039056fe445245766964656e636553746f72616765436f6e7374616e742e45564944454e43455f434f4e54524143545f56455253494f4e5f563122f59c2f02edbae5c421247f029fe3112c5a85f70b4a48f5d93b22ada9ea772ea2646970667358221220c5d4c3e9b1d4f0fdae7105a0c20b7d4708e480d5b3884b797b4ae838e26ac5ff64736f6c634300080b0033" + "608060405234801561001057600080fd5b506139fb806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80635edea296116100ad578063a217fddf11610071578063a217fddf14610293578063d547741f1461029b578063e6947731146102ae578063efddd7f8146102c1578063fc4eb482146102d457600080fd5b80635edea296146102085780636e963a591461022a5780637d3dfe7d1461024d5780638e7daf821461026057806391d148541461028057600080fd5b806336568abe116100f457806336568abe146101a9578063378d85fa146101bc5780633dd296b5146101cf5780634cea35a6146101e2578063588f695d146101f557600080fd5b806301ffc9a714610126578063248a9ca31461014e5780632f2ff15d1461017f57806332d7432714610194575b600080fd5b610139610134366004612fc8565b6102e7565b60405190151581526020015b60405180910390f35b61017161015c366004612ff2565b60009081526065602052604090206001015490565b604051908152602001610145565b61019261018d366004613022565b61031e565b005b6101716000805160206139a683398151915281565b6101926101b7366004613022565b610348565b6101926101ca366004613103565b6103cb565b6101926101dd366004613166565b61040a565b6101396101f03660046131aa565b6104ac565b61017161020336600461321f565b610533565b61021b610216366004613274565b610548565b604051610145939291906133a1565b61023d6102383660046133d8565b61056d565b604051610145949392919061342b565b61023d61025b3660046131aa565b610591565b61027361026e366004613515565b6105b1565b604051610145919061356e565b61013961028e366004613022565b6105d6565b610171600081565b6101926102a9366004613022565b610601565b6101716102bc366004613581565b610626565b6101926102cf3660046135ec565b61063f565b6101926102e23660046131aa565b6106ac565b60006001600160e01b03198216637965db0b60e01b148061031857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526065602052604090206001015461033981610775565b6103438383610782565b505050565b6001600160a01b03811633146103bd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6103c78282610808565b5050565b6103d560c961086f565b6103fe604051806040016040528060088152602001673932bb34b2bbb2b960c11b8152506108cf565b6103c760c98383610a26565b600061041581610775565b60006001600160a01b031660978460405161043091906136bd565b908152604051908190036020019020546001600160a01b03161415610343576104676000805160206139a683398151915283610782565b8160978460405161047891906136bd565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b6000806001600160a01b03166097836040516104c891906136bd565b908152604051908190036020019020546001600160a01b031614610526576103186000805160206139a683398151915260978460405161050891906136bd565b908152604051908190036020019020546001600160a01b03166105d6565b506000919050565b919050565b600061054160c98484610ba9565b9392505050565b600060608061055c60c98989898989610cb2565b925092509250955095509592505050565b60006060808061058060c9888888610eeb565b935093509350935093509350935093565b6000606080806105a260c986611145565b93509350935093509193509193565b606060006105c160c9858561117c565b90506105ce60c98261121b565b949350505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526065602052604090206001015461061c81610775565b6103438383610808565b600061063660c98686868661124b565b95945050505050565b61064960c961086f565b610672604051806040016040528060088152602001673932bb34b2bbb2b960c11b8152506108cf565b61068160c9868686868661139f565b600061068e60c98761176a565b90506106a48661069f6001846136ef565b6117d6565b505050505050565b60006106b781610775565b60006001600160a01b03166097836040516106d291906136bd565b908152604051908190036020019020546001600160a01b0316146103c7576107306000805160206139a683398151915260978460405161071291906136bd565b908152604051908190036020019020546001600160a01b0316610808565b600060978360405161074291906136bd565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b61077f8133611821565b50565b61078c82826105d6565b6103c75760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556107c43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61081282826105d6565b156103c75760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6108788161187a565b60408051808201909152601981527f436f6e747261637420697320696e61636365737369626c652e0000000000000060208201529015156001146103c75760405162461bcd60e51b81526004016103b4919061356e565b6000806108dd60c933611896565b90925090506001821515146109345760405162461bcd60e51b815260206004820152601960248201527f53656e646572206973206e6f7420726567697374657265642e0000000000000060448201526064016103b4565b600061094160c98361194e565b90506109ba60405180604001604052806005815260200164195e1a5cdd60da1b8152506109b46109aa61099f886040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b81525061197890919063ffffffff16565b805160209091012090565b60068501906119a4565b90611a47565b1515600114610a205760405162461bcd60e51b815260206004820152602c60248201527f5573657220776974686f757420636f72726573706f6e64696e6720726f6c652060448201526b3832b936b4b9b9b4b7b7399760a11b60648201526084016103b4565b50505050565b610a308383611a6c565b1515600114610a515760405162461bcd60e51b81526004016103b490613714565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090610a7a9084611978565b8051906020012090506000610abe6040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508461197890919063ffffffff16565b90506000610acd868484611ac7565b905060005b8163ffffffff168163ffffffff161015610ba0576000610b30610afa8363ffffffff16611b28565b60408051808201909152600e81526d1d3932bb34b2bb9d34b73232bc1d60911b6020820152610b2a908990611978565b90611978565b90506000610b3f898784611bc4565b9050610b8b89826040518060400160405280600681526020016573746174757360d01b81525060405180604001604052806008815260200167191a5cd8589b195960c21b815250611c25565b50508080610b9890613740565b915050610ad2565b50505050505050565b6000610beb8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a6c92505050565b1515600114610c0c5760405162461bcd60e51b81526004016103b490613714565b6000610c6a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b602082015292915050611978565b805190602001209050610ca385826040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611ac7565b63ffffffff1695945050505050565b6000606080610cf78989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a6c92505050565b1515600114610d185760405162461bcd60e51b81526004016103b490613714565b6000610d7689898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b602082015292915050611978565b8051906020012090506000610df48b83610def6040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119789050565b611ac7565b90508063ffffffff168663ffffffff1610610e415760405162461bcd60e51b815260206004820152600d60248201526c0d2dcecc2d8d2c840d2dcc8caf609b1b60448201526064016103b4565b6000610ec88c84610ec3610e5a8b63ffffffff16611b28565b610b2a6040518060400160405280600e81526020016d1d3932bb34b2bb9d34b73232bc1d60911b8152508f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119789050565b611bc4565b9050610ed48c82611c54565b929f909e50919c50909a5050505050505050505050565b60006060806060610f328888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a6c92505050565b1515600114610f535760405162461bcd60e51b81526004016103b490613714565b6000610fb188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b602082015292915050611978565b8051906020012090506000610fec8a836040518060400160405280600d81526020016c7265766965775f636f756e", + "743d60981b815250611ac7565b90508063ffffffff168763ffffffff161061103a5760405162461bcd60e51b815260206004820152600e60248201526d0d2d2dcecc2d8d2c840d2dcc8caf60931b60448201526064016103b4565b600061107d8b84610ec36110538c63ffffffff16611b28565b60408051808201909152600d81526c3932bb34b2bb9d34b73232bc1d60991b602082015290611978565b90506110ad8b826040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b815250611d1c565b95506000806110bc8d84611d76565b93509350505060006110ed8e856040518060400160405280600681526020016573746174757360d01b815250611d1c565b905061112260405180604001604052806008815260200167191a5cd8589b195960c21b81525082611a4790919063ffffffff16565b99508197506111328e8585611f10565b9650505050505050945094509450949050565b60006060806060600061115f878780519060200120612168565b905061116b8782611c54565b929a91995097509095509350505050565b6000806111b0846040518060400160405280600681526020016572657669657760d01b81525061197890919063ffffffff16565b905060005b83518163ffffffff16101561120a576111f6848263ffffffff16815181106111df576111df613764565b60200260200101518361197890919063ffffffff16565b91508061120281613740565b9150506111b5565b508051602090910120949350505050565b6060610541836040518060400160405280600b81526020016a32b4b21d3932bb34b2bb9d60a91b815250846121dc565b600061128d8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a6c92505050565b15156001146112ae5760405162461bcd60e51b81526004016103b490613714565b600061130c86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b602082015292915050611978565b80519060200120905060006113806040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b81525086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119789050565b905061138d888383611ac7565b63ffffffff1698975050505050505050565b6001835110156114005760405162461bcd60e51b815260206004820152602660248201527f54686572652073686f756c64206265206d6f7265207468616e20312044617461604482015265102430b9b41760d11b60648201526084016103b4565b61140a86856121f1565b6114148686611a6c565b15156001146114355760405162461bcd60e51b81526004016103b490613714565b6040805180820190915260058152641c9a59da1d60da1b602082015260009061145e9087611978565b805190602001209050600061147488888761117c565b90506114a088826040518060400160405280600681526020016572657669657760d01b81525087612289565b6114e38882604051806040016040528060078152602001663b32b939b4b7b760c91b81525060405180606001604052806036815260200161397060369139611c25565b61150b8882604051806040016040528060048152602001637564726960e01b8152508a611c25565b61153a88826040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b81525089611c25565b61156c88826040518060400160405280600e81526020016d0e4caecd2caee88c2e8c290c2e6d60931b8152508861235c565b6115b488826040518060400160405280600681526020016573746174757360d01b8152506040518060400160405280600681526020016561637469766560d01b815250611c25565b60006115ef6040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508861197890919063ffffffff16565b905060006115fe8a8584611ac7565b90506116168a858461161185600161377a565b61238f565b6116638a8561165d61162d8563ffffffff16611b28565b60408051808201909152600e81526d1d3932bb34b2bb9d34b73232bc1d60911b6020820152610b2a908e90611978565b866123c2565b6116938a856040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611ac7565b90506116cd8a856040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250846001611611919061377a565b6116e48a8561165d6110538563ffffffff16611b28565b6116ef8a89856123f5565b6117198a846040518060400160405280600681526020016572657669657760d01b81525088612546565b60006117498b6040518060400160405280600b81526020016a32b4b21d3932bb34b2bb9d60a91b815250866121dc565b905061175d8b8280519060200120866126ab565b5050505050505050505050565b60008061179d83604051806040016040528060058152602001641c9a59da1d60da1b81525061197890919063ffffffff16565b8051906020012090506105ce84826040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611ac7565b8063ffffffff16826040516117eb91906136bd565b6040519081900381209033907f88ac03187be67c1563b7eb5df904b3339aa5af5e26f3df98b18f1c993ad2118a90600090a45050565b61182b82826105d6565b6103c75761183881612729565b61184383602061273b565b6040516020016118549291906137a2565b60408051601f198184030181529082905262461bcd60e51b82526103b49160040161356e565b600080611886836128d6565b63ffffffff166001149392505050565b6001600160a01b0381166000908152602083905260408120805460609183916118be90613817565b80601f01602080910402602001604051908101604052809291908181526020018280546118ea90613817565b80156119375780601f1061190c57610100808354040283529160200191611937565b820191906000526020600020905b81548152906001019060200180831161191a57829003601f168201915b5050835115159650929450505050505b9250929050565b6000826001018260405161196291906136bd565b9081526020016040518091039020905092915050565b6060828260405160200161198d929190613852565b604051602081830303815290604052905092915050565b60008181526020839052604090208054606091906119c190613817565b80601f01602080910402602001604051908101604052809291908181526020018280546119ed90613817565b8015611a3a5780601f10611a0f57610100808354040283529160200191611a3a565b820191906000526020600020905b815481529060010190602001808311611a1d57829003601f168201915b5050505050905092915050565b6000815183511480156105415750508051602091820120825192909101919091201490565b600080611abd611aa184604051806040016040528060048152602001637564726960e01b81525061197890919063ffffffff16565b8051602091820120600090815260078701909152604090205490565b1515949350505050565b6000828152600284016020526040812060080154611af75760405162461bcd60e51b81526004016103b490613878565b6105ce828051906020012085600201600086815260200190815260200160002060030161295190919063ffffffff16565b60606000611b358361296a565b60010190506000816001600160401b03811115611b5457611b5461304e565b6040519080825280601f01601f191660200182016040528015611b7e576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611bb757611bbc565b611b88565b509392505050565b6000828152600284016020526040812060080154611bf45760405162461bcd60e51b81526004016103b490613878565b6105ce828051906020012085600201600086815260200190815260200160002060040161293e90919063ffffffff16565b81516020808401919091206000858152600280880190935260409020611c4d92019083612a42565b5050505050565b60006060806060600080611c688888611d76565b9350935050506000611c9989896040518060400160405280600681526020016573746174757360d01b815250611d1c565b9050611cce60405180604001604052806008815260200167191a5cd8589b195960c21b81525082611a4790919063ffffffff16565b9650819450611cde898985611f10565b9350611d0e89896040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b815250611d1c565b955050505092959194509250565b6000828152600284016020526040902060080154606090611d4f5760405162461bcd60e51b81526004016103b490613878565b815160208084019190912060008581526002808801909352604090206105ce9201906119a4565b6000818152600283016020526040812060088101548154839260609283928115159190839060068201908290611dab90613817565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd790613817565b8015611e245780601f10611df957610100808354040283529160200191611e24565b820191906000526020600020905b815481529060010190602001808311611e0757829003601f168201915b5050505050915080805480602002602001604051908101604052809291908181526020016000905b82821015611ef8578382906000526020600020018054611e6b90613817565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9790613817565b8015611ee45780601f10611eb957610100808354040283529160200191611ee4565b820191906000526020600020905b815481529060010190602001808311611ec757829003601f168201915b505050505081526020019060010190611e4c565b50505050905094509450945094505092959194509250565b606060028151611f2091906138bc565b15611f695760405162461bcd60e51b81526020600482015260196024820152783b30b934b0b13632a230ba30903632b733ba341032b93937b960391b60448201526064016103b4565b6000611f758585612a69565b90506000611f838685612aaf565b90506000805b82518163ffffffff161015612008576000838263ffffffff1681518110611fb257611fb2613764565b602002602001015190506000611fdb8280519060200120876007016119a490919063ffffffff16565b80519091", + "5015611ff35783611fef81613740565b9450505b5050808061200090613740565b915050611f89565b5063ffffffff81161561215e576000806120238360026138de565b63ffffffff166001600160401b038111156120405761204061304e565b60405190808252806020026020018201604052801561207357816020015b606081526020019060019003908161205e5790505b50905060005b84518163ffffffff161015612159576000858263ffffffff16815181106120a2576120a2613764565b6020026020010151905060006120cb8280519060200120896007016119a490919063ffffffff16565b8051909150156121445781848663ffffffff16815181106120ee576120ee613764565b6020908102919091010152808461210687600161377a565b63ffffffff168151811061211c5761211c613764565b6020026020010181905250858061213290613740565b9650612141905085600261377a565b94505b5050808061215190613740565b915050612079565b509450505b5050509392505050565b60008181526003830160205260408120546121c55760405162461bcd60e51b815260206004820152601f60248201527f45766964656e636553746f726167653a20656964206e6f74206578697374730060448201526064016103b4565b506000908152600391909101602052604090205490565b60606105ce6121ea83612b12565b8490611978565b600081511161222e5760405162461bcd60e51b81526020600482015260096024820152683134b21032b93937b960b91b60448201526064016103b4565b6122388282612b29565b15156001146103c75760405162461bcd60e51b815260206004820152601e60248201527f626974206e6f74207265676973746572206f6e207468697320636861696e000060448201526064016103b4565b6000838152600285016020526040902060080154156122f65760405162461bcd60e51b8152602060048201526024808201527f45766964656e636553746f726167653a207564726920616c72656164792065786044820152636973747360e01b60648201526084016103b4565b60008381526002850160209081526040909120835161231792850190612e7f565b5060008381526002850160209081526040909120825161233f92600690920191840190612f03565b505050600090815260029091016020526040902042600890910155565b611c4d828051906020012082866002016000878152602001908152602001600020600101612b599092919063ffffffff16565b611c4d828051906020012082866002016000878152602001908152602001600020600301612b759092919063ffffffff16565b611c4d828051906020012082866002016000878152602001908152602001600020600401612ba19092919063ffffffff16565b6000836001018360405161240991906136bd565b908152604080516020928190038301812081830190925260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b9201919091529050600061247f7f8e7e22a149a62d266f1366830ad13fadc3d0c42cdbb2dca110769fc88fb0ddbb600090815260098401602052604090205490565b905060006124be61099f61249284612bb6565b60408051808201909152600f81526e32afb932bb34b2bb9d34b73232bc1d60891b602082015290611978565b6000818152600885016020526040902085905590506040805180820190915260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b602090910152610ba07f8e7e22a149a62d266f1366830ad13fadc3d0c42cdbb2dca110769fc88fb0ddbb61252f84600161390a565b600091825260098601602052604090912055600190565b6002815161255491906138bc565b1561259d5760405162461bcd60e51b81526020600482015260196024820152783b30b934b0b13632a230ba30903632b733ba341032b93937b960391b60448201526064016103b4565b60006125a98585612a69565b905060005b82518163ffffffff1610156106a4576000838263ffffffff16815181106125d7576125d7613764565b602002602001015190506000848360016125f1919061377a565b63ffffffff168151811061260757612607613764565b6020026020010151905061261c888784612bc5565b151560011461267e5760405162461bcd60e51b815260206004820152602860248201527f50617274206f66207661726961626c6544617461206669656c64206973206e6f6044820152673a1030b63637bbb760c11b60648201526084016103b4565b8151602083012061269490600786019083612a42565b5050506002816126a4919061377a565b90506125ae565b6000828152600384016020526040902054156127155760405162461bcd60e51b815260206004820152602360248201527f45766964656e636553746f726167653a2062696420616c72656164792065786960448201526273747360e81b60648201526084016103b4565b600091825260039092016020526040902055565b60606103186001600160a01b03831660145b6060600061274a836002613922565b61275590600261390a565b6001600160401b0381111561276c5761276c61304e565b6040519080825280601f01601f191660200182016040528015612796576020820181803683370190505b509050600360fc1b816000815181106127b1576127b1613764565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106127e0576127e0613764565b60200101906001600160f81b031916908160001a9053506000612804846002613922565b61280f90600161390a565b90505b6001811115612887576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061284357612843613764565b1a60f81b82828151811061285957612859613764565b60200101906001600160f81b031916908160001a90535060049490941c9361288081613941565b9050612812565b5083156105415760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016103b4565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b60208201526000906105417f9dbfebaee4c898490164a8ab686838c633319f3806d3dea7cd93c1cfefb35e07600090815260068501602052604090205463ffffffff1690565b6000908152602091909152604090205490565b6000908152602091909152604090205463ffffffff1690565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106129a95772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106129d5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106129f357662386f26fc10000830492506010015b6305f5e1008310612a0b576305f5e100830492506008015b6127108310612a1f57612710830492506004015b60648310612a31576064830492506002015b600a83106103185760010192915050565b60008281526020848152604082208351612a5e92850190612e7f565b506001949350505050565b6000818152600283016020526040812060080154612a995760405162461bcd60e51b81526004016103b490613878565b5060009081526002919091016020526040902090565b60606000612afb6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d8152508461197890919063ffffffff16565b805160208201209091506106366004860182612c48565b606061031882612b2181612d2c565b600101612d96565b60008260010182604051612b3d91906136bd565b908152604051908190036020019020600b015415159392505050565b60008281526020848152604082208351612a5e92850190612f03565b6000828152602084905260409020805463ffffffff831663ffffffff1990911617905560019392505050565b60009182526020929092526040902055600190565b606061031882612b2184612d2c565b600080612c0983610b2a604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508761197890919063ffffffff16565b80516020820120909150612c3460068701826000908152602091909152604090205463ffffffff1690565b63ffffffff16600114925050509392505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015612d20578382906000526020600020018054612c9390613817565b80601f0160208091040260200160405190810160405280929190818152602001828054612cbf90613817565b8015612d0c5780601f10612ce157610100808354040283529160200191612d0c565b820191906000526020600020905b815481529060010190602001808311612cef57829003601f168201915b505050505081526020019060010190612c74565b50505050905092915050565b600080608083901c15612d445760809290921c916010015b604083901c15612d595760409290921c916008015b602083901c15612d6e5760209290921c916004015b601083901c15612d835760109290921c916002015b600883901c156103185760010192915050565b6060826000612da6846002613922565b6001600160401b03811115612dbd57612dbd61304e565b6040519080825280601f01601f191660200182016040528015612de7576020820181803683370190505b5090506000612df7856002613922565b90505b8015612e76576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110612e2857612e28613764565b1a60f81b82612e38600184613958565b81518110612e4857612e48613764565b60200101906001600160f81b031916908160001a90535060049290921c91612e6f81613941565b9050612dfa565b50949350505050565b828054612e8b90613817565b90600052602060002090601f016020900481019282612ead5760008555612ef3565b82601f10612ec657805160ff1916838001178555612ef3565b82800160010185558215612ef3579182015b82811115612ef3578251825591602001919060010190612ed8565b50612eff929150612f5c565b5090565b828054828255906000526020600020908101928215612f50579160200282015b82811115612f505782518051612f40918491602090910190612e7f565b5091602001919060010190612f23565b50612eff929150612f71565b5b80821115612eff5760008155600101612f5d565b80821115612eff576000612f858282612f8e565b50600101612f71565b508054612f9a90613817565b6000825580601f10612faa575050565b601f01602090049060005260206000209081019061077f9190612f5c565b600060208284031215612fda57600080fd5b8135600160", + "0160e01b03198116811461054157600080fd5b60006020828403121561300457600080fd5b5035919050565b80356001600160a01b038116811461052e57600080fd5b6000806040838503121561303557600080fd5b823591506130456020840161300b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561308c5761308c61304e565b604052919050565b600082601f8301126130a557600080fd5b81356001600160401b038111156130be576130be61304e565b6130d1601f8201601f1916602001613064565b8181528460208386010111156130e657600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561311657600080fd5b82356001600160401b038082111561312d57600080fd5b61313986838701613094565b9350602085013591508082111561314f57600080fd5b5061315c85828601613094565b9150509250929050565b6000806040838503121561317957600080fd5b82356001600160401b0381111561318f57600080fd5b61319b85828601613094565b9250506130456020840161300b565b6000602082840312156131bc57600080fd5b81356001600160401b038111156131d257600080fd5b6105ce84828501613094565b60008083601f8401126131f057600080fd5b5081356001600160401b0381111561320757600080fd5b60208301915083602082850101111561194757600080fd5b6000806020838503121561323257600080fd5b82356001600160401b0381111561324857600080fd5b613254858286016131de565b90969095509350505050565b803563ffffffff8116811461052e57600080fd5b60008060008060006060868803121561328c57600080fd5b85356001600160401b03808211156132a357600080fd5b6132af89838a016131de565b909750955060208801359150808211156132c857600080fd5b506132d5888289016131de565b90945092506132e8905060408701613260565b90509295509295909350565b60005b8381101561330f5781810151838201526020016132f7565b83811115610a205750506000910152565b600081518084526133388160208601602086016132f4565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b85811015613394578284038952613382848351613320565b9885019893509084019060010161336a565b5091979650505050505050565b83151581526060602082015260006133bc606083018561334c565b82810360408401526133ce818561334c565b9695505050505050565b6000806000604084860312156133ed57600080fd5b83356001600160401b0381111561340357600080fd5b61340f868287016131de565b9094509250613422905060208501613260565b90509250925092565b84151581526080602082015260006134466080830186613320565b8281036040840152613458818661334c565b9050828103606084015261346c818561334c565b979650505050505050565b600082601f83011261348857600080fd5b813560206001600160401b03808311156134a4576134a461304e565b8260051b6134b3838201613064565b93845285810183019383810190888611156134cd57600080fd5b84880192505b85831015613509578235848111156134eb5760008081fd5b6134f98a87838c0101613094565b83525091840191908401906134d3565b98975050505050505050565b6000806040838503121561352857600080fd5b82356001600160401b038082111561353f57600080fd5b61354b86838701613094565b9350602085013591508082111561356157600080fd5b5061315c85828601613477565b6020815260006105416020830184613320565b6000806000806040858703121561359757600080fd5b84356001600160401b03808211156135ae57600080fd5b6135ba888389016131de565b909650945060208701359150808211156135d357600080fd5b506135e0878288016131de565b95989497509550505050565b600080600080600060a0868803121561360457600080fd5b85356001600160401b038082111561361b57600080fd5b61362789838a01613094565b9650602088013591508082111561363d57600080fd5b61364989838a01613094565b9550604088013591508082111561365f57600080fd5b61366b89838a01613477565b9450606088013591508082111561368157600080fd5b61368d89838a01613477565b935060808801359150808211156136a357600080fd5b506136b088828901613477565b9150509295509295909350565b600082516136cf8184602087016132f4565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8381169083168181101561370c5761370c6136d9565b039392505050565b6020808252601290820152713ab23934903737ba1037b71031b430b4b71760711b604082015260600190565b600063ffffffff8083168181141561375a5761375a6136d9565b6001019392505050565b634e487b7160e01b600052603260045260246000fd5b600063ffffffff808316818516808303821115613799576137996136d9565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516137da8160178501602088016132f4565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161380b8160288401602088016132f4565b01602801949350505050565b600181811c9082168061382b57607f821691505b6020821081141561384c57634e487b7160e01b600052602260045260246000fd5b50919050565b600083516138648184602088016132f4565b8351908301906137998183602088016132f4565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b6000826138d957634e487b7160e01b600052601260045260246000fd5b500690565b600063ffffffff80831681851681830481118215151615613901576139016136d9565b02949350505050565b6000821982111561391d5761391d6136d9565b500190565b600081600019048311821515161561393c5761393c6136d9565b500290565b600081613950576139506136d9565b506000190190565b60008282101561396a5761396a6136d9565b50039056fe445245766964656e636553746f72616765436f6e7374616e742e45564944454e43455f434f4e54524143545f56455253494f4e5f563122f59c2f02edbae5c421247f029fe3112c5a85f70b4a48f5d93b22ada9ea772ea264697066735822122026e54ee1252f69caa708ed6d6b063f948efb4ee4132e2cefe021bbbf4c7d686d64736f6c634300080b0033" }; public static final String BINARY = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", BINARY_ARRAY); public static final String[] SM_BINARY_ARRAY = { - "608060405234801561001057600080fd5b506139b4806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063b5aed06f116100ad578063ea7eb79811610071578063ea7eb7981461026b578063f216dff31461027e578063f642391814610291578063fbd3f0bf146102b1578063fd09e7d6146102d457600080fd5b8063b5aed06f146101eb578063b6773ad81461020e578063b70b2fbc14610223578063d124396814610236578063de92755c1461025857600080fd5b80635472010b116100f45780635472010b1461017c578063617ded3a1461018f57806384e38262146101b2578063a4ff64c2146101c5578063a87808d8146101d857600080fd5b806317d66dc8146101265780631b3240b81461013b5780632db3c636146101565780634f4a022214610169575b600080fd5b610139610134366004612f98565b6102e7565b005b610143600081565b6040519081526020015b60405180910390f35b610139610164366004613117565b61036b565b610143610177366004613229565b6103d8565b61013961018a366004612f98565b6103ed565b6101a261019d36600461326a565b610417565b60405161014d949392919061334b565b6101396101c0366004613397565b610437565b6101396101d336600461326a565b610476565b6101436101e63660046133fa565b61053f565b6101fe6101f936600461326a565b610558565b604051901515815260200161014d565b61014360008051602061392983398151915281565b610139610231366004613465565b6105e5565b6102496102443660046134bd565b610687565b60405161014d9392919061353d565b6101fe610266366004612f98565b6106ac565b6101fe610279366004613574565b6106d7565b6101a261028c36600461359e565b61070c565b6102a461029f3660046135f1565b610730565b60405161014d919061364a565b6101436102bf36600461365d565b60009081526065602052604090206001015490565b6101396102e2366004612f98565b610755565b6001600160a01b038116331461035d57604051636381e58960e11b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6103678282610776565b5050565b61037560c96107dd565b61039e604051806040016040528060088152602001673932bb34b2bbb2b960c11b81525061083e565b6103ad60c98686868686610997565b60006103ba60c987610d32565b90506103d0866103cb60018461368c565b610d9e565b505050505050565b60006103e660c98484610de9565b9392505050565b60008281526065602052604090206001015461040881610ef3565b6104128383610f00565b505050565b60006060808061042860c986610f86565b93509350935093509193509193565b61044160c96107dd565b61046a604051806040016040528060088152602001673932bb34b2bbb2b960c11b81525061083e565b61036760c98383610fbd565b600061048181610ef3565b60006001600160a01b031660978360405161049c91906136b1565b908152604051908190036020019020546001600160a01b031614610367576104fa6000805160206139298339815191526097846040516104dc91906136b1565b908152604051908190036020019020546001600160a01b0316610776565b600060978360405161050c91906136b1565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b600061054f60c98686868661113b565b95945050505050565b6000806001600160a01b031660978360405161057491906136b1565b908152604051908190036020019020546001600160a01b0316146105d8576105d26000805160206139298339815191526097846040516105b491906136b1565b908152604051908190036020019020546001600160a01b03166106ac565b92915050565b506000919050565b919050565b60006105f081610ef3565b60006001600160a01b031660978460405161060b91906136b1565b908152604051908190036020019020546001600160a01b031614156104125761064260008051602061392983398151915283610f00565b8160978460405161065391906136b1565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b600060608061069b60c98989898989611290565b925092509250955095509592505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006001600160e01b03198216634df6077b60e11b14806105d25750631d4fd6f360e31b6001600160e01b03198316146105d2565b60006060808061071f60c98888886114cb565b935093509350935093509350935093565b6060600061074060c985856116fd565b905061074d60c98261179c565b949350505050565b60008281526065602052604090206001015461077081610ef3565b61041283835b61078082826106ac565b156103675760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917fddf24a0d777ab37f0cd0acf6e2b0a75570d42c6500405e008f7f9a61836cf2a39190a45050565b6107e6816117cc565b60408051808201909152601981527f436f6e747261637420697320696e61636365737369626c652e00000000000000602082015290151560011461036757604051636381e58960e11b8152600401610354919061364a565b60008061084c60c9336117e8565b90925090506001821515146108a457604051636381e58960e11b815260206004820152601960248201527f53656e646572206973206e6f7420726567697374657265642e000000000000006044820152606401610354565b60006108b160c9836118a0565b905061092a60405180604001604052806005815260200164195e1a5cdd60da1b81525061092461091a61090f886040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b8152506118ca90919063ffffffff16565b805160209091012090565b60068501906118f6565b90611999565b151560011461099157604051636381e58960e11b815260206004820152602c60248201527f5573657220776974686f757420636f72726573706f6e64696e6720726f6c652060448201526b3832b936b4b9b9b4b7b7399760a11b6064820152608401610354565b50505050565b6109a186856119be565b6109ab8686611a58565b15156001146109cd57604051636381e58960e11b8152600401610354906136cd565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906109f690876118ca565b8051906020012090506000610a0c8888876116fd565b9050610a3888826040518060400160405280600681526020016572657669657760d01b81525087611ab3565b610a7b8882604051806040016040528060078152602001663b32b939b4b7b760c91b81525060405180606001604052806036815260200161394960369139611b87565b610aa38882604051806040016040528060048152602001637564726960e01b8152508a611b87565b610ad288826040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b81525089611b87565b610b0488826040518060400160405280600e81526020016d0e4caecd2caee88c2e8c290c2e6d60931b81525088611bb6565b610b4c88826040518060400160405280600681526020016573746174757360d01b8152506040518060400160405280600681526020016561637469766560d01b815250611b87565b6000610b876040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b815250886118ca90919063ffffffff16565b90506000610b968a8584611be9565b9050610bae8a8584610ba98560016136f9565b611c4b565b610c018a85610bfb610bc58563ffffffff16611c7e565b60408051808201909152600e81526d1d3932bb34b2bb9d34b73232bc1d60911b6020820152610bf5908e906118ca565b906118ca565b86611d1a565b610c318a856040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611be9565b9050610c6b8a856040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250846001610ba991906136f9565b610cac8a85610bfb610c828563ffffffff16611c7e565b60408051808201909152600d81526c3932bb34b2bb9d34b73232bc1d60991b6020820152906118ca565b610cb78a8985611d4d565b610ce18a846040518060400160405280600681526020016572657669657760d01b81525088611e9e565b6000610d118b6040518060400160405280600b81526020016a32b4b21d3932bb34b2bb9d60a91b81525086612005565b9050610d258b82805190602001208661201a565b5050505050505050505050565b600080610d6583604051806040016040528060058152602001641c9a59da1d60da1b8152506118ca90919063ffffffff16565b80519060200120905061074d84826040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611be9565b8063ffffffff1682604051610db391906136b1565b6040519081900381209033907f4274fe8770de2c07dfe4790b72274159aaafe24acff67538902fd45fcae6dac890600090a45050565b6000610e2b8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a5892505050565b1515600114610e4d57604051636381e58960e11b8152600401610354906136cd565b6000610eab84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b6020820152929150506118ca565b805190602001209050610ee485826040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611be9565b63ffffffff1695945050505050565b610efd8133612099565b50565b610f0a82826106ac565b6103675760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610f423390565b6001600160a01b0316816001600160a01b0316837f3a8c19c5eddb5ca7fdd091f00e2b3978b86344c928af4d2d7f6733572cc06b4c60405160405180910390a45050565b600060608060606000610fa08787805190602001206120f3565b9050610fac8782612168565b929a91995097509095509350505050565b610fc78383611a58565b1515600114610fe957604051636381e58960e11b81526004", - "01610354906136cd565b6040805180820190915260058152641c9a59da1d60da1b602082015260009061101290846118ca565b80519060200120905060006110566040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b815250846118ca90919063ffffffff16565b90506000611065868484611be9565b905060005b8163ffffffff168163ffffffff1610156111325760006110c26110928363ffffffff16611c7e565b60408051808201909152600e81526d1d3932bb34b2bb9d34b73232bc1d60911b6020820152610bf59089906118ca565b905060006110d1898784612230565b905061111d89826040518060400160405280600681526020016573746174757360d01b81525060405180604001604052806008815260200167191a5cd8589b195960c21b815250611b87565b5050808061112a90613721565b91505061106a565b50505050505050565b600061117d8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a5892505050565b151560011461119f57604051636381e58960e11b8152600401610354906136cd565b60006111fd86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b6020820152929150506118ca565b80519060200120905060006112716040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b81525086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506118ca9050565b905061127e888383611be9565b63ffffffff1698975050505050505050565b60006060806112d58989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a5892505050565b15156001146112f757604051636381e58960e11b8152600401610354906136cd565b600061135589898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b6020820152929150506118ca565b80519060200120905060006113d38b836113ce6040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506118ca9050565b611be9565b90508063ffffffff168663ffffffff161061142157604051636381e58960e11b815260206004820152600d60248201526c0d2dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610354565b60006114a88c846114a361143a8b63ffffffff16611c7e565b610bf56040518060400160405280600e81526020016d1d3932bb34b2bb9d34b73232bc1d60911b8152508f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506118ca9050565b612230565b90506114b48c82612168565b929f909e50919c50909a5050505050505050505050565b600060608060606115128888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a5892505050565b151560011461153457604051636381e58960e11b8152600401610354906136cd565b600061159288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b6020820152929150506118ca565b80519060200120905060006115cd8a836040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611be9565b90508063ffffffff168763ffffffff161061161c57604051636381e58960e11b815260206004820152600e60248201526d0d2d2dcecc2d8d2c840d2dcc8caf60931b6044820152606401610354565b60006116358b846114a3610c828c63ffffffff16611c7e565b90506116658b826040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b815250612292565b95506000806116748d846122ed565b93509350505060006116a58e856040518060400160405280600681526020016573746174757360d01b815250612292565b90506116da60405180604001604052806008815260200167191a5cd8589b195960c21b8152508261199990919063ffffffff16565b99508197506116ea8e8585612487565b9650505050505050945094509450949050565b600080611731846040518060400160405280600681526020016572657669657760d01b8152506118ca90919063ffffffff16565b905060005b83518163ffffffff16101561178b57611777848263ffffffff168151811061176057611760613745565b6020026020010151836118ca90919063ffffffff16565b91508061178381613721565b915050611736565b508051602090910120949350505050565b60606103e6836040518060400160405280600b81526020016a32b4b21d3932bb34b2bb9d60a91b81525084612005565b6000806117d8836126e0565b63ffffffff166001149392505050565b6001600160a01b0381166000908152602083905260408120805460609183916118109061375b565b80601f016020809104026020016040519081016040528092919081815260200182805461183c9061375b565b80156118895780601f1061185e57610100808354040283529160200191611889565b820191906000526020600020905b81548152906001019060200180831161186c57829003601f168201915b5050835115159650929450505050505b9250929050565b600082600101826040516118b491906136b1565b9081526020016040518091039020905092915050565b606082826040516020016118df929190613796565b604051602081830303815290604052905092915050565b60008181526020839052604090208054606091906119139061375b565b80601f016020809104026020016040519081016040528092919081815260200182805461193f9061375b565b801561198c5780601f106119615761010080835404028352916020019161198c565b820191906000526020600020905b81548152906001019060200180831161196f57829003601f168201915b5050505050905092915050565b6000815183511480156103e65750508051602091820120825192909101919091201490565b60008151116119fc57604051636381e58960e11b81526020600482015260096024820152683134b21032b93937b960b91b6044820152606401610354565b611a068282612748565b151560011461036757604051636381e58960e11b815260206004820152601e60248201527f626974206e6f74207265676973746572206f6e207468697320636861696e00006044820152606401610354565b600080611aa9611a8d84604051806040016040528060048152602001637564726960e01b8152506118ca90919063ffffffff16565b8051602091820120600090815260078701909152604090205490565b1515949350505050565b600083815260028501602052604090206008015415611b2157604051636381e58960e11b8152602060048201526024808201527f45766964656e636553746f726167653a207564726920616c72656164792065786044820152636973747360e01b6064820152608401610354565b600083815260028501602090815260409091208351611b4292850190612e38565b50600083815260028501602090815260409091208251611b6a92600690920191840190612ebc565b505050600090815260029091016020526040902042600890910155565b81516020808401919091206000858152600280880190935260409020611baf9201908361278b565b5050505050565b611baf8280519060200120828660020160008781526020019081526020016000206001016127b29092919063ffffffff16565b6000828152600284016020526040812060080154611c1a57604051636381e58960e11b8152600401610354906137bc565b61074d82805190602001208560020160008681526020019081526020016000206003016127ce90919063ffffffff16565b611baf8280519060200120828660020160008781526020019081526020016000206003016127e79092919063ffffffff16565b60606000611c8b83612813565b60010190506000816001600160401b03811115611caa57611caa612fc4565b6040519080825280601f01601f191660200182016040528015611cd4576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d0d57611d12565b611cde565b509392505050565b611baf8280519060200120828660020160008781526020019081526020016000206004016128eb9092919063ffffffff16565b60008360010183604051611d6191906136b1565b908152604080516020928190038301812081830190925260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b92019190915290506000611dd77fc87fd76dcb254b470588f43d2dd39ad8a7f86e49142e501a49eaca8ce0f863dc600090815260098401602052604090205490565b90506000611e1661090f611dea84612900565b60408051808201909152600f81526e32afb932bb34b2bb9d34b73232bc1d60891b6020820152906118ca565b6000818152600885016020526040902085905590506040805180820190915260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b6020909101526111327fc87fd76dcb254b470588f43d2dd39ad8a7f86e49142e501a49eaca8ce0f863dc611e87846001613800565b600091825260098601602052604090912055600190565b60028151611eac9190613818565b15611ef657604051636381e58960e11b81526020600482015260196024820152783b30b934b0b13632a230ba30903632b733ba341032b93937b960391b6044820152606401610354565b6000611f028585612917565b905060005b82518163ffffffff1610156103d0576000838263ffffffff1681518110611f3057611f30613745565b60200260200101519050600084836001611f4a91906136f9565b63ffffffff1681518110611f6057611f60613745565b60200260200101519050611f7588878461295e565b1515600114611fd857604051636381e58960e11b815260206004820152602860248201527f50617274206f66207661726961626c6544617461206669656c64206973206e6f6044820152673a1030b63637bbb760c11b6064820152608401610354565b81516020830120", - "611fee9060078601908361278b565b505050600281611ffe91906136f9565b9050611f07565b606061074d612013836129e1565b84906118ca565b60008281526003840160205260409020541561208557604051636381e58960e11b815260206004820152602360248201527f45766964656e636553746f726167653a2062696420616c72656164792065786960448201526273747360e81b6064820152608401610354565b600091825260039092016020526040902055565b6120a382826106ac565b610367576120b0816129f0565b6120bb836020612a02565b6040516020016120cc92919061383a565b60408051601f1981840301815290829052636381e58960e11b82526103549160040161364a565b600081815260038301602052604081205461215157604051636381e58960e11b815260206004820152601f60248201527f45766964656e636553746f726167653a20656964206e6f7420657869737473006044820152606401610354565b506000908152600391909101602052604090205490565b6000606080606060008061217c88886122ed565b93509350505060006121ad89896040518060400160405280600681526020016573746174757360d01b815250612292565b90506121e260405180604001604052806008815260200167191a5cd8589b195960c21b8152508261199990919063ffffffff16565b96508194506121f2898985612487565b935061222289896040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b815250612292565b955050505092959194509250565b600082815260028401602052604081206008015461226157604051636381e58960e11b8152600401610354906137bc565b61074d828051906020012085600201600086815260200190815260200160002060040161277890919063ffffffff16565b60008281526002840160205260409020600801546060906122c657604051636381e58960e11b8152600401610354906137bc565b8151602080840191909120600085815260028088019093526040902061074d9201906118f6565b60008181526002830160205260408120600881015481548392606092839281151591908390600682019082906123229061375b565b80601f016020809104026020016040519081016040528092919081815260200182805461234e9061375b565b801561239b5780601f106123705761010080835404028352916020019161239b565b820191906000526020600020905b81548152906001019060200180831161237e57829003601f168201915b5050505050915080805480602002602001604051908101604052809291908181526020016000905b8282101561246f5783829060005260206000200180546123e29061375b565b80601f016020809104026020016040519081016040528092919081815260200182805461240e9061375b565b801561245b5780601f106124305761010080835404028352916020019161245b565b820191906000526020600020905b81548152906001019060200180831161243e57829003601f168201915b5050505050815260200190600101906123c3565b50505050905094509450945094505092959194509250565b6060600281516124979190613818565b156124e157604051636381e58960e11b81526020600482015260196024820152783b30b934b0b13632a230ba30903632b733ba341032b93937b960391b6044820152606401610354565b60006124ed8585612917565b905060006124fb8685612b9e565b90506000805b82518163ffffffff161015612580576000838263ffffffff168151811061252a5761252a613745565b6020026020010151905060006125538280519060200120876007016118f690919063ffffffff16565b80519091501561256b578361256781613721565b9450505b5050808061257890613721565b915050612501565b5063ffffffff8116156126d65760008061259b8360026138af565b63ffffffff166001600160401b038111156125b8576125b8612fc4565b6040519080825280602002602001820160405280156125eb57816020015b60608152602001906001900390816125d65790505b50905060005b84518163ffffffff1610156126d1576000858263ffffffff168151811061261a5761261a613745565b6020026020010151905060006126438280519060200120896007016118f690919063ffffffff16565b8051909150156126bc5781848663ffffffff168151811061266657612666613745565b6020908102919091010152808461267e8760016136f9565b63ffffffff168151811061269457612694613745565b602002602001018190525085806126aa90613721565b96506126b990508560026136f9565b94505b505080806126c990613721565b9150506125f1565b509450505b5050509392505050565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b60208201526000906103e67fe4f23932eff8c7a5c12e0a6fb9b7dc66fcf815724641a77260df59fd307f9a64600090815260068501602052604090205463ffffffff1690565b6000826001018260405161275c91906136b1565b908152604051908190036020019020600b015415159392505050565b6000908152602091909152604090205490565b600082815260208481526040822083516127a792850190612e38565b506001949350505050565b600082815260208481526040822083516127a792850190612ebc565b6000908152602091909152604090205463ffffffff1690565b6000828152602084905260409020805463ffffffff831663ffffffff1990911617905560019392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106128525772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061287e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061289c57662386f26fc10000830492506010015b6305f5e10083106128b4576305f5e100830492506008015b61271083106128c857612710830492506004015b606483106128da576064830492506002015b600a83106105d25760010192915050565b60009182526020929092526040902055600190565b60606105d28261290f84612c01565b600101612c6b565b600081815260028301602052604081206008015461294857604051636381e58960e11b8152600401610354906137bc565b5060009081526002919091016020526040902090565b6000806129a283610bf5604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b815250876118ca90919063ffffffff16565b805160208201209091506129cd60068701826000908152602091909152604090205463ffffffff1690565b63ffffffff16600114925050509392505050565b60606105d28261290f81612c01565b60606105d26001600160a01b03831660145b60606000612a118360026138db565b612a1c906002613800565b6001600160401b03811115612a3357612a33612fc4565b6040519080825280601f01601f191660200182016040528015612a5d576020820181803683370190505b509050600360fc1b81600081518110612a7857612a78613745565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612aa757612aa7613745565b60200101906001600160f81b031916908160001a9053506000612acb8460026138db565b612ad6906001613800565b90505b6001811115612b4e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612b0a57612b0a613745565b1a60f81b828281518110612b2057612b20613745565b60200101906001600160f81b031916908160001a90535060049490941c93612b47816138fa565b9050612ad9565b5083156103e657604051636381e58960e11b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610354565b60606000612bea6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d815250846118ca90919063ffffffff16565b8051602082012090915061054f6004860182612d54565b600080608083901c15612c195760809290921c916010015b604083901c15612c2e5760409290921c916008015b602083901c15612c435760209290921c916004015b601083901c15612c585760109290921c916002015b600883901c156105d25760010192915050565b6060826000612c7b8460026138db565b6001600160401b03811115612c9257612c92612fc4565b6040519080825280601f01601f191660200182016040528015612cbc576020820181803683370190505b5090506000612ccc8560026138db565b90505b8015612d4b576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110612cfd57612cfd613745565b1a60f81b82612d0d600184613911565b81518110612d1d57612d1d613745565b60200101906001600160f81b031916908160001a90535060049290921c91612d44816138fa565b9050612ccf565b50949350505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015612e2c578382906000526020600020018054612d9f9061375b565b80601f0160208091040260200160405190810160405280929190818152602001828054612dcb9061375b565b8015612e185780601f10612ded57610100808354040283529160200191612e18565b820191906000526020600020905b815481529060010190602001808311612dfb57829003601f168201915b505050505081526020019060010190612d80565b50505050905092915050565b828054612e449061375b565b90600052602060002090601f016020900481019282612e665760008555612eac565b82601f10612e7f57805160ff1916838001178555612eac565b82800160010185558215612eac579182015b82811115612eac578251825591602001919060010190612e91565b50612eb8929150612f15565b5090565b828054828255906000526020600020908101928215612f09579160200282015b82811115612f095782518051612ef9918491602090910190612e38565b5091602001919060010190612edc565b50612eb8929150612f2a565b5b80821115612eb85760008155600101612f16565b80821115612eb8576000612f3e8282612f47565b50600101612f2a565b508054612f539061375b565b6000825580601f10612f63575050565b601f016020900490600052602060002090810190610efd9190612f15565b80356001600160a01b03811681146105e057600080fd5b60008060408385031215612fab57600080fd5b82359150612fbb60208401612f81565b90509250929050565b63b95aa35560e01b600052604160045260246000fd5b604051601f", - "8201601f191681016001600160401b038111828210171561300257613002612fc4565b604052919050565b600082601f83011261301b57600080fd5b81356001600160401b0381111561303457613034612fc4565b613047601f8201601f1916602001612fda565b81815284602083860101111561305c57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261308a57600080fd5b813560206001600160401b03808311156130a6576130a6612fc4565b8260051b6130b5838201612fda565b93845285810183019383810190888611156130cf57600080fd5b84880192505b8583101561310b578235848111156130ed5760008081fd5b6130fb8a87838c010161300a565b83525091840191908401906130d5565b98975050505050505050565b600080600080600060a0868803121561312f57600080fd5b85356001600160401b038082111561314657600080fd5b61315289838a0161300a565b9650602088013591508082111561316857600080fd5b61317489838a0161300a565b9550604088013591508082111561318a57600080fd5b61319689838a01613079565b945060608801359150808211156131ac57600080fd5b6131b889838a01613079565b935060808801359150808211156131ce57600080fd5b506131db88828901613079565b9150509295509295909350565b60008083601f8401126131fa57600080fd5b5081356001600160401b0381111561321157600080fd5b60208301915083602082850101111561189957600080fd5b6000806020838503121561323c57600080fd5b82356001600160401b0381111561325257600080fd5b61325e858286016131e8565b90969095509350505050565b60006020828403121561327c57600080fd5b81356001600160401b0381111561329257600080fd5b61074d8482850161300a565b60005b838110156132b95781810151838201526020016132a1565b838111156109915750506000910152565b600081518084526132e281602086016020860161329e565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101561333e57828403895261332c8483516132ca565b98850198935090840190600101613314565b5091979650505050505050565b841515815260806020820152600061336660808301866132ca565b828103604084015261337881866132f6565b9050828103606084015261338c81856132f6565b979650505050505050565b600080604083850312156133aa57600080fd5b82356001600160401b03808211156133c157600080fd5b6133cd8683870161300a565b935060208501359150808211156133e357600080fd5b506133f08582860161300a565b9150509250929050565b6000806000806040858703121561341057600080fd5b84356001600160401b038082111561342757600080fd5b613433888389016131e8565b9096509450602087013591508082111561344c57600080fd5b50613459878288016131e8565b95989497509550505050565b6000806040838503121561347857600080fd5b82356001600160401b0381111561348e57600080fd5b61349a8582860161300a565b925050612fbb60208401612f81565b803563ffffffff811681146105e057600080fd5b6000806000806000606086880312156134d557600080fd5b85356001600160401b03808211156134ec57600080fd5b6134f889838a016131e8565b9097509550602088013591508082111561351157600080fd5b5061351e888289016131e8565b90945092506135319050604087016134a9565b90509295509295909350565b831515815260606020820152600061355860608301856132f6565b828103604084015261356a81856132f6565b9695505050505050565b60006020828403121561358657600080fd5b81356001600160e01b0319811681146103e657600080fd5b6000806000604084860312156135b357600080fd5b83356001600160401b038111156135c957600080fd5b6135d5868287016131e8565b90945092506135e89050602085016134a9565b90509250925092565b6000806040838503121561360457600080fd5b82356001600160401b038082111561361b57600080fd5b6136278683870161300a565b9350602085013591508082111561363d57600080fd5b506133f085828601613079565b6020815260006103e660208301846132ca565b60006020828403121561366f57600080fd5b5035919050565b63b95aa35560e01b600052601160045260246000fd5b600063ffffffff838116908316818110156136a9576136a9613676565b039392505050565b600082516136c381846020870161329e565b9190910192915050565b6020808252601290820152713ab23934903737ba1037b71031b430b4b71760711b604082015260600190565b600063ffffffff80831681851680830382111561371857613718613676565b01949350505050565b600063ffffffff8083168181141561373b5761373b613676565b6001019392505050565b63b95aa35560e01b600052603260045260246000fd5b600181811c9082168061376f57607f821691505b602082108114156137905763b95aa35560e01b600052602260045260246000fd5b50919050565b600083516137a881846020880161329e565b83519083019061371881836020880161329e565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b6000821982111561381357613813613676565b500190565b6000826138355763b95aa35560e01b600052601260045260246000fd5b500690565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161387281601785016020880161329e565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516138a381602884016020880161329e565b01602801949350505050565b600063ffffffff808316818516818304811182151516156138d2576138d2613676565b02949350505050565b60008160001904831182151516156138f5576138f5613676565b500290565b60008161390957613909613676565b506000190190565b60008282101561392357613923613676565b50039056fecda5c054d055f48a2866e1a28d72f8145e422f1db1872bc4c9fe2888702c9f8d445245766964656e636553746f72616765436f6e7374616e742e45564944454e43455f434f4e54524143545f56455253494f4e5f5631a2646970667358221220e4e2a35530967e2b4404e364885caedfc791958d0c4fb675f5ad15d9b6f291cf64736f6c634300080b0033" + "608060405234801561001057600080fd5b50613a16806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063b5aed06f116100ad578063ea7eb79811610071578063ea7eb7981461026b578063f216dff31461027e578063f642391814610291578063fbd3f0bf146102b1578063fd09e7d6146102d457600080fd5b8063b5aed06f146101eb578063b6773ad81461020e578063b70b2fbc14610223578063d124396814610236578063de92755c1461025857600080fd5b80635472010b116100f45780635472010b1461017c578063617ded3a1461018f57806384e38262146101b2578063a4ff64c2146101c5578063a87808d8146101d857600080fd5b806317d66dc8146101265780631b3240b81461013b5780632db3c636146101565780634f4a022214610169575b600080fd5b610139610134366004612ffa565b6102e7565b005b610143600081565b6040519081526020015b60405180910390f35b610139610164366004613179565b61036b565b61014361017736600461328b565b6103d8565b61013961018a366004612ffa565b6103ed565b6101a261019d3660046132cc565b610417565b60405161014d94939291906133ad565b6101396101c03660046133f9565b610437565b6101396101d33660046132cc565b610476565b6101436101e636600461345c565b61053f565b6101fe6101f93660046132cc565b610558565b604051901515815260200161014d565b61014360008051602061398b83398151915281565b6101396102313660046134c7565b6105e5565b61024961024436600461351f565b610687565b60405161014d9392919061359f565b6101fe610266366004612ffa565b6106ac565b6101fe6102793660046135d6565b6106d7565b6101a261028c366004613600565b61070c565b6102a461029f366004613653565b610730565b60405161014d91906136ac565b6101436102bf3660046136bf565b60009081526065602052604090206001015490565b6101396102e2366004612ffa565b610755565b6001600160a01b038116331461035d57604051636381e58960e11b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6103678282610776565b5050565b61037560c96107dd565b61039e604051806040016040528060088152602001673932bb34b2bbb2b960c11b81525061083e565b6103ad60c98686868686610997565b60006103ba60c987610d94565b90506103d0866103cb6001846136ee565b610e00565b505050505050565b60006103e660c98484610e4b565b9392505050565b60008281526065602052604090206001015461040881610f55565b6104128383610f62565b505050565b60006060808061042860c986610fe8565b93509350935093509193509193565b61044160c96107dd565b61046a604051806040016040528060088152602001673932bb34b2bbb2b960c11b81525061083e565b61036760c9838361101f565b600061048181610f55565b60006001600160a01b031660978360405161049c9190613713565b908152604051908190036020019020546001600160a01b031614610367576104fa60008051602061398b8339815191526097846040516104dc9190613713565b908152604051908190036020019020546001600160a01b0316610776565b600060978360405161050c9190613713565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b600061054f60c98686868661119d565b95945050505050565b6000806001600160a01b03166097836040516105749190613713565b908152604051908190036020019020546001600160a01b0316146105d8576105d260008051602061398b8339815191526097846040516105b49190613713565b908152604051908190036020019020546001600160a01b03166106ac565b92915050565b506000919050565b919050565b60006105f081610f55565b60006001600160a01b031660978460405161060b9190613713565b908152604051908190036020019020546001600160a01b031614156104125761064260008051602061398b83398151915283610f62565b816097846040516106539190613713565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b600060608061069b60c989898989896112f2565b925092509250955095509592505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006001600160e01b03198216634df6077b60e11b14806105d25750631d4fd6f360e31b6001600160e01b03198316146105d2565b60006060808061071f60c988888861152d565b935093509350935093509350935093565b6060600061074060c9858561175f565b905061074d60c9826117fe565b949350505050565b60008281526065602052604090206001015461077081610f55565b61041283835b61078082826106ac565b156103675760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917fddf24a0d777ab37f0cd0acf6e2b0a75570d42c6500405e008f7f9a61836cf2a39190a45050565b6107e68161182e565b60408051808201909152601981527f436f6e747261637420697320696e61636365737369626c652e00000000000000602082015290151560011461036757604051636381e58960e11b815260040161035491906136ac565b60008061084c60c93361184a565b90925090506001821515146108a457604051636381e58960e11b815260206004820152601960248201527f53656e646572206973206e6f7420726567697374657265642e000000000000006044820152606401610354565b60006108b160c983611902565b905061092a60405180604001604052806005815260200164195e1a5cdd60da1b81525061092461091a61090f886040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b81525061192c90919063ffffffff16565b805160209091012090565b6006850190611958565b906119fb565b151560011461099157604051636381e58960e11b815260206004820152602c60248201527f5573657220776974686f757420636f72726573706f6e64696e6720726f6c652060448201526b3832b936b4b9b9b4b7b7399760a11b6064820152608401610354565b50505050565b6001835110156109f957604051636381e58960e11b815260206004820152602660248201527f54686572652073686f756c64206265206d6f7265207468616e20312044617461604482015265102430b9b41760d11b6064820152608401610354565b610a038685611a20565b610a0d8686611aba565b1515600114610a2f57604051636381e58960e11b81526004016103549061372f565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090610a58908761192c565b8051906020012090506000610a6e88888761175f565b9050610a9a88826040518060400160405280600681526020016572657669657760d01b81525087611b15565b610add8882604051806040016040528060078152602001663b32b939b4b7b760c91b8152506040518060600160405280603681526020016139ab60369139611be9565b610b058882604051806040016040528060048152602001637564726960e01b8152508a611be9565b610b3488826040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b81525089611be9565b610b6688826040518060400160405280600e81526020016d0e4caecd2caee88c2e8c290c2e6d60931b81525088611c18565b610bae88826040518060400160405280600681526020016573746174757360d01b8152506040518060400160405280600681526020016561637469766560d01b815250611be9565b6000610be96040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508861192c90919063ffffffff16565b90506000610bf88a8584611c4b565b9050610c108a8584610c0b85600161375b565b611cad565b610c638a85610c5d610c278563ffffffff16611ce0565b60408051808201909152600e81526d1d3932bb34b2bb9d34b73232bc1d60911b6020820152610c57908e9061192c565b9061192c565b86611d7c565b610c938a856040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611c4b565b9050610ccd8a856040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250846001610c0b919061375b565b610d0e8a85610c5d610ce48563ffffffff16611ce0565b60408051808201909152600d81526c3932bb34b2bb9d34b73232bc1d60991b60208201529061192c565b610d198a8985611daf565b610d438a846040518060400160405280600681526020016572657669657760d01b81525088611f00565b6000610d738b6040518060400160405280600b81526020016a32b4b21d3932bb34b2bb9d60a91b81525086612067565b9050610d878b82805190602001208661207c565b5050505050505050505050565b600080610dc783604051806040016040528060058152602001641c9a59da1d60da1b81525061192c90919063ffffffff16565b80519060200120905061074d84826040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611c4b565b8063ffffffff1682604051610e159190613713565b6040519081900381209033907f4274fe8770de2c07dfe4790b72274159aaafe24acff67538902fd45fcae6dac890600090a45050565b6000610e8d8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611aba92505050565b1515600114610eaf57604051636381e58960e11b81526004016103549061372f565b6000610f0d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b60208201529291505061192c565b805190602001209050610f4685826040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611c4b565b63ffffffff1695945050505050565b610f5f81336120fb565b50565b610f6c82826106ac565b6103675760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610fa43390565b6001600160a01b0316816001600160a01b0316837f3a8c19c5eddb5ca7fdd091f00e2b3978b86344c928af4d2d7f6733572cc06b4c604051604051", + "80910390a45050565b600060608060606000611002878780519060200120612155565b905061100e87826121ca565b929a91995097509095509350505050565b6110298383611aba565b151560011461104b57604051636381e58960e11b81526004016103549061372f565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090611074908461192c565b80519060200120905060006110b86040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508461192c90919063ffffffff16565b905060006110c7868484611c4b565b905060005b8163ffffffff168163ffffffff1610156111945760006111246110f48363ffffffff16611ce0565b60408051808201909152600e81526d1d3932bb34b2bb9d34b73232bc1d60911b6020820152610c5790899061192c565b90506000611133898784612292565b905061117f89826040518060400160405280600681526020016573746174757360d01b81525060405180604001604052806008815260200167191a5cd8589b195960c21b815250611be9565b5050808061118c90613783565b9150506110cc565b50505050505050565b60006111df8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611aba92505050565b151560011461120157604051636381e58960e11b81526004016103549061372f565b600061125f86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b60208201529291505061192c565b80519060200120905060006112d36040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b81525086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061192c9050565b90506112e0888383611c4b565b63ffffffff1698975050505050505050565b60006060806113378989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611aba92505050565b151560011461135957604051636381e58960e11b81526004016103549061372f565b60006113b789898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b60208201529291505061192c565b80519060200120905060006114358b836114306040518060400160405280600e81526020016d3a7265766965775f636f756e743d60901b8152508c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061192c9050565b611c4b565b90508063ffffffff168663ffffffff161061148357604051636381e58960e11b815260206004820152600d60248201526c0d2dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610354565b600061150a8c8461150561149c8b63ffffffff16611ce0565b610c576040518060400160405280600e81526020016d1d3932bb34b2bb9d34b73232bc1d60911b8152508f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061192c9050565b612292565b90506115168c826121ca565b929f909e50919c50909a5050505050505050505050565b600060608060606115748888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611aba92505050565b151560011461159657604051636381e58960e11b81526004016103549061372f565b60006115f488888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260058152641c9a59da1d60da1b60208201529291505061192c565b805190602001209050600061162f8a836040518060400160405280600d81526020016c7265766965775f636f756e743d60981b815250611c4b565b90508063ffffffff168763ffffffff161061167e57604051636381e58960e11b815260206004820152600e60248201526d0d2d2dcecc2d8d2c840d2dcc8caf60931b6044820152606401610354565b60006116978b84611505610ce48c63ffffffff16611ce0565b90506116c78b826040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b8152506122f4565b95506000806116d68d8461234f565b93509350505060006117078e856040518060400160405280600681526020016573746174757360d01b8152506122f4565b905061173c60405180604001604052806008815260200167191a5cd8589b195960c21b815250826119fb90919063ffffffff16565b995081975061174c8e85856124e9565b9650505050505050945094509450949050565b600080611793846040518060400160405280600681526020016572657669657760d01b81525061192c90919063ffffffff16565b905060005b83518163ffffffff1610156117ed576117d9848263ffffffff16815181106117c2576117c26137a7565b60200260200101518361192c90919063ffffffff16565b9150806117e581613783565b915050611798565b508051602090910120949350505050565b60606103e6836040518060400160405280600b81526020016a32b4b21d3932bb34b2bb9d60a91b81525084612067565b60008061183a83612742565b63ffffffff166001149392505050565b6001600160a01b038116600090815260208390526040812080546060918391611872906137bd565b80601f016020809104026020016040519081016040528092919081815260200182805461189e906137bd565b80156118eb5780601f106118c0576101008083540402835291602001916118eb565b820191906000526020600020905b8154815290600101906020018083116118ce57829003601f168201915b5050835115159650929450505050505b9250929050565b600082600101826040516119169190613713565b9081526020016040518091039020905092915050565b606082826040516020016119419291906137f8565b604051602081830303815290604052905092915050565b6000818152602083905260409020805460609190611975906137bd565b80601f01602080910402602001604051908101604052809291908181526020018280546119a1906137bd565b80156119ee5780601f106119c3576101008083540402835291602001916119ee565b820191906000526020600020905b8154815290600101906020018083116119d157829003601f168201915b5050505050905092915050565b6000815183511480156103e65750508051602091820120825192909101919091201490565b6000815111611a5e57604051636381e58960e11b81526020600482015260096024820152683134b21032b93937b960b91b6044820152606401610354565b611a6882826127aa565b151560011461036757604051636381e58960e11b815260206004820152601e60248201527f626974206e6f74207265676973746572206f6e207468697320636861696e00006044820152606401610354565b600080611b0b611aef84604051806040016040528060048152602001637564726960e01b81525061192c90919063ffffffff16565b8051602091820120600090815260078701909152604090205490565b1515949350505050565b600083815260028501602052604090206008015415611b8357604051636381e58960e11b8152602060048201526024808201527f45766964656e636553746f726167653a207564726920616c72656164792065786044820152636973747360e01b6064820152608401610354565b600083815260028501602090815260409091208351611ba492850190612e9a565b50600083815260028501602090815260409091208251611bcc92600690920191840190612f1e565b505050600090815260029091016020526040902042600890910155565b81516020808401919091206000858152600280880190935260409020611c11920190836127ed565b5050505050565b611c118280519060200120828660020160008781526020019081526020016000206001016128149092919063ffffffff16565b6000828152600284016020526040812060080154611c7c57604051636381e58960e11b81526004016103549061381e565b61074d828051906020012085600201600086815260200190815260200160002060030161283090919063ffffffff16565b611c118280519060200120828660020160008781526020019081526020016000206003016128499092919063ffffffff16565b60606000611ced83612875565b60010190506000816001600160401b03811115611d0c57611d0c613026565b6040519080825280601f01601f191660200182016040528015611d36576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d6f57611d74565b611d40565b509392505050565b611c1182805190602001208286600201600087815260200190815260200160002060040161294d9092919063ffffffff16565b60008360010183604051611dc39190613713565b908152604080516020928190038301812081830190925260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b92019190915290506000611e397fc87fd76dcb254b470588f43d2dd39ad8a7f86e49142e501a49eaca8ce0f863dc600090815260098401602052604090205490565b90506000611e7861090f611e4c84612962565b60408051808201909152600f81526e32afb932bb34b2bb9d34b73232bc1d60891b60208201529061192c565b6000818152600885016020526040902085905590506040805180820190915260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b6020909101526111947fc87fd76dcb254b470588f43d2dd39ad8a7f86e49142e501a49eaca8ce0f863dc611ee9846001613862565b600091825260098601602052604090912055600190565b60028151611f0e919061387a565b15611f5857604051636381e58960e11b81526020600482015260196024820152783b30b934b0b13632a230ba30903632b733ba341032b93937b960391b6044820152606401610354565b6000611f648585612979565b905060005b82518163ffffffff1610156103d0576000838263ffffffff1681518110611f9257611f926137a7565b60200260200101519050600084836001611fac919061375b565b63ffffffff1681518110611fc257611fc26137a7565b60200260200101519050611fd78887846129c0565b151560011461203a", + "57604051636381e58960e11b815260206004820152602860248201527f50617274206f66207661726961626c6544617461206669656c64206973206e6f6044820152673a1030b63637bbb760c11b6064820152608401610354565b81516020830120612050906007860190836127ed565b505050600281612060919061375b565b9050611f69565b606061074d61207583612a43565b849061192c565b6000828152600384016020526040902054156120e757604051636381e58960e11b815260206004820152602360248201527f45766964656e636553746f726167653a2062696420616c72656164792065786960448201526273747360e81b6064820152608401610354565b600091825260039092016020526040902055565b61210582826106ac565b6103675761211281612a52565b61211d836020612a64565b60405160200161212e92919061389c565b60408051601f1981840301815290829052636381e58960e11b8252610354916004016136ac565b60008181526003830160205260408120546121b357604051636381e58960e11b815260206004820152601f60248201527f45766964656e636553746f726167653a20656964206e6f7420657869737473006044820152606401610354565b506000908152600391909101602052604090205490565b600060608060606000806121de888861234f565b935093505050600061220f89896040518060400160405280600681526020016573746174757360d01b8152506122f4565b905061224460405180604001604052806008815260200167191a5cd8589b195960c21b815250826119fb90919063ffffffff16565b96508194506122548989856124e9565b935061228489896040518060400160405280600b81526020016a1c995d9a595dd95c909a5960aa1b8152506122f4565b955050505092959194509250565b60008281526002840160205260408120600801546122c357604051636381e58960e11b81526004016103549061381e565b61074d82805190602001208560020160008681526020019081526020016000206004016127da90919063ffffffff16565b600082815260028401602052604090206008015460609061232857604051636381e58960e11b81526004016103549061381e565b8151602080840191909120600085815260028088019093526040902061074d920190611958565b6000818152600283016020526040812060088101548154839260609283928115159190839060068201908290612384906137bd565b80601f01602080910402602001604051908101604052809291908181526020018280546123b0906137bd565b80156123fd5780601f106123d2576101008083540402835291602001916123fd565b820191906000526020600020905b8154815290600101906020018083116123e057829003601f168201915b5050505050915080805480602002602001604051908101604052809291908181526020016000905b828210156124d1578382906000526020600020018054612444906137bd565b80601f0160208091040260200160405190810160405280929190818152602001828054612470906137bd565b80156124bd5780601f10612492576101008083540402835291602001916124bd565b820191906000526020600020905b8154815290600101906020018083116124a057829003601f168201915b505050505081526020019060010190612425565b50505050905094509450945094505092959194509250565b6060600281516124f9919061387a565b1561254357604051636381e58960e11b81526020600482015260196024820152783b30b934b0b13632a230ba30903632b733ba341032b93937b960391b6044820152606401610354565b600061254f8585612979565b9050600061255d8685612c00565b90506000805b82518163ffffffff1610156125e2576000838263ffffffff168151811061258c5761258c6137a7565b6020026020010151905060006125b582805190602001208760070161195890919063ffffffff16565b8051909150156125cd57836125c981613783565b9450505b505080806125da90613783565b915050612563565b5063ffffffff811615612738576000806125fd836002613911565b63ffffffff166001600160401b0381111561261a5761261a613026565b60405190808252806020026020018201604052801561264d57816020015b60608152602001906001900390816126385790505b50905060005b84518163ffffffff161015612733576000858263ffffffff168151811061267c5761267c6137a7565b6020026020010151905060006126a582805190602001208960070161195890919063ffffffff16565b80519091501561271e5781848663ffffffff16815181106126c8576126c86137a7565b602090810291909101015280846126e087600161375b565b63ffffffff16815181106126f6576126f66137a7565b6020026020010181905250858061270c90613783565b965061271b905085600261375b565b94505b5050808061272b90613783565b915050612653565b509450505b5050509392505050565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b60208201526000906103e67fe4f23932eff8c7a5c12e0a6fb9b7dc66fcf815724641a77260df59fd307f9a64600090815260068501602052604090205463ffffffff1690565b600082600101826040516127be9190613713565b908152604051908190036020019020600b015415159392505050565b6000908152602091909152604090205490565b6000828152602084815260408220835161280992850190612e9a565b506001949350505050565b6000828152602084815260408220835161280992850190612f1e565b6000908152602091909152604090205463ffffffff1690565b6000828152602084905260409020805463ffffffff831663ffffffff1990911617905560019392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106128b45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106128e0576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106128fe57662386f26fc10000830492506010015b6305f5e1008310612916576305f5e100830492506008015b612710831061292a57612710830492506004015b6064831061293c576064830492506002015b600a83106105d25760010192915050565b60009182526020929092526040902055600190565b60606105d28261297184612c63565b600101612ccd565b60008181526002830160205260408120600801546129aa57604051636381e58960e11b81526004016103549061381e565b5060009081526002919091016020526040902090565b600080612a0483610c57604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b8152508761192c90919063ffffffff16565b80516020820120909150612a2f60068701826000908152602091909152604090205463ffffffff1690565b63ffffffff16600114925050509392505050565b60606105d28261297181612c63565b60606105d26001600160a01b03831660145b60606000612a7383600261393d565b612a7e906002613862565b6001600160401b03811115612a9557612a95613026565b6040519080825280601f01601f191660200182016040528015612abf576020820181803683370190505b509050600360fc1b81600081518110612ada57612ada6137a7565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612b0957612b096137a7565b60200101906001600160f81b031916908160001a9053506000612b2d84600261393d565b612b38906001613862565b90505b6001811115612bb0576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612b6c57612b6c6137a7565b1a60f81b828281518110612b8257612b826137a7565b60200101906001600160f81b031916908160001a90535060049490941c93612ba98161395c565b9050612b3b565b5083156103e657604051636381e58960e11b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610354565b60606000612c4c6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d8152508461192c90919063ffffffff16565b8051602082012090915061054f6004860182612db6565b600080608083901c15612c7b5760809290921c916010015b604083901c15612c905760409290921c916008015b602083901c15612ca55760209290921c916004015b601083901c15612cba5760109290921c916002015b600883901c156105d25760010192915050565b6060826000612cdd84600261393d565b6001600160401b03811115612cf457612cf4613026565b6040519080825280601f01601f191660200182016040528015612d1e576020820181803683370190505b5090506000612d2e85600261393d565b90505b8015612dad576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110612d5f57612d5f6137a7565b1a60f81b82612d6f600184613973565b81518110612d7f57612d7f6137a7565b60200101906001600160f81b031916908160001a90535060049290921c91612da68161395c565b9050612d31565b50949350505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015612e8e578382906000526020600020018054612e01906137bd565b80601f0160208091040260200160405190810160405280929190818152602001828054612e2d906137bd565b8015612e7a5780601f10612e4f57610100808354040283529160200191612e7a565b820191906000526020600020905b815481529060010190602001808311612e5d57829003601f168201915b505050505081526020019060010190612de2565b50505050905092915050565b828054612ea6906137bd565b90600052602060002090601f016020900481019282612ec85760008555612f0e565b82601f10612ee157805160ff1916838001178555612f0e565b82800160010185558215612f0e579182015b82811115612f0e578251825591602001919060010190612ef3565b50612f1a929150612f77565b5090565b828054828255906000526020600020908101928215612f6b579160200282015b82811115612f6b5782518051612f5b918491602090910190612e9a565b5091602001919060010190612f3e565b50612f1a929150612f8c565b5b80821115612f1a5760008155600101612f78565b80821115612f1a576000612fa08282612fa9565b50600101612f8c565b508054612fb5906137bd565b6000825580601f10612fc5575050565b601f016020900490600052602060002090810190610f5f919061", + "2f77565b80356001600160a01b03811681146105e057600080fd5b6000806040838503121561300d57600080fd5b8235915061301d60208401612fe3565b90509250929050565b63b95aa35560e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561306457613064613026565b604052919050565b600082601f83011261307d57600080fd5b81356001600160401b0381111561309657613096613026565b6130a9601f8201601f191660200161303c565b8181528460208386010111156130be57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126130ec57600080fd5b813560206001600160401b038083111561310857613108613026565b8260051b61311783820161303c565b938452858101830193838101908886111561313157600080fd5b84880192505b8583101561316d5782358481111561314f5760008081fd5b61315d8a87838c010161306c565b8352509184019190840190613137565b98975050505050505050565b600080600080600060a0868803121561319157600080fd5b85356001600160401b03808211156131a857600080fd5b6131b489838a0161306c565b965060208801359150808211156131ca57600080fd5b6131d689838a0161306c565b955060408801359150808211156131ec57600080fd5b6131f889838a016130db565b9450606088013591508082111561320e57600080fd5b61321a89838a016130db565b9350608088013591508082111561323057600080fd5b5061323d888289016130db565b9150509295509295909350565b60008083601f84011261325c57600080fd5b5081356001600160401b0381111561327357600080fd5b6020830191508360208285010111156118fb57600080fd5b6000806020838503121561329e57600080fd5b82356001600160401b038111156132b457600080fd5b6132c08582860161324a565b90969095509350505050565b6000602082840312156132de57600080fd5b81356001600160401b038111156132f457600080fd5b61074d8482850161306c565b60005b8381101561331b578181015183820152602001613303565b838111156109915750506000910152565b60008151808452613344816020860160208601613300565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156133a057828403895261338e84835161332c565b98850198935090840190600101613376565b5091979650505050505050565b84151581526080602082015260006133c8608083018661332c565b82810360408401526133da8186613358565b905082810360608401526133ee8185613358565b979650505050505050565b6000806040838503121561340c57600080fd5b82356001600160401b038082111561342357600080fd5b61342f8683870161306c565b9350602085013591508082111561344557600080fd5b506134528582860161306c565b9150509250929050565b6000806000806040858703121561347257600080fd5b84356001600160401b038082111561348957600080fd5b6134958883890161324a565b909650945060208701359150808211156134ae57600080fd5b506134bb8782880161324a565b95989497509550505050565b600080604083850312156134da57600080fd5b82356001600160401b038111156134f057600080fd5b6134fc8582860161306c565b92505061301d60208401612fe3565b803563ffffffff811681146105e057600080fd5b60008060008060006060868803121561353757600080fd5b85356001600160401b038082111561354e57600080fd5b61355a89838a0161324a565b9097509550602088013591508082111561357357600080fd5b506135808882890161324a565b909450925061359390506040870161350b565b90509295509295909350565b83151581526060602082015260006135ba6060830185613358565b82810360408401526135cc8185613358565b9695505050505050565b6000602082840312156135e857600080fd5b81356001600160e01b0319811681146103e657600080fd5b60008060006040848603121561361557600080fd5b83356001600160401b0381111561362b57600080fd5b6136378682870161324a565b909450925061364a90506020850161350b565b90509250925092565b6000806040838503121561366657600080fd5b82356001600160401b038082111561367d57600080fd5b6136898683870161306c565b9350602085013591508082111561369f57600080fd5b50613452858286016130db565b6020815260006103e6602083018461332c565b6000602082840312156136d157600080fd5b5035919050565b63b95aa35560e01b600052601160045260246000fd5b600063ffffffff8381169083168181101561370b5761370b6136d8565b039392505050565b60008251613725818460208701613300565b9190910192915050565b6020808252601290820152713ab23934903737ba1037b71031b430b4b71760711b604082015260600190565b600063ffffffff80831681851680830382111561377a5761377a6136d8565b01949350505050565b600063ffffffff8083168181141561379d5761379d6136d8565b6001019392505050565b63b95aa35560e01b600052603260045260246000fd5b600181811c908216806137d157607f821691505b602082108114156137f25763b95aa35560e01b600052602260045260246000fd5b50919050565b6000835161380a818460208801613300565b83519083019061377a818360208801613300565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b60008219821115613875576138756136d8565b500190565b6000826138975763b95aa35560e01b600052601260045260246000fd5b500690565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516138d4816017850160208801613300565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613905816028840160208801613300565b01602801949350505050565b600063ffffffff80831681851681830481118215151615613934576139346136d8565b02949350505050565b6000816000190483118215151615613957576139576136d8565b500290565b60008161396b5761396b6136d8565b506000190190565b600082821015613985576139856136d8565b50039056fecda5c054d055f48a2866e1a28d72f8145e422f1db1872bc4c9fe2888702c9f8d445245766964656e636553746f72616765436f6e7374616e742e45564944454e43455f434f4e54524143545f56455253494f4e5f5631a26469706673582212205284de0fc8d5d4b2dc52be8ae5839bb9361fc4ac1c024efb6e8899b8e9e25e0764736f6c634300080b0033" }; public static final String SM_BINARY = diff --git a/java/DREvidenceRightController.java b/java/DREvidenceRightController.java index a199b65db6705549dbe842bc34b0df2c82c10ae4..c408a1196d4c743bd3d3ff8e5f46a991d5c8750f 100644 --- a/java/DREvidenceRightController.java +++ b/java/DREvidenceRightController.java @@ -32,20 +32,20 @@ import org.fisco.bcos.sdk.v3.transaction.model.exception.ContractException; @SuppressWarnings("unchecked") public class DREvidenceRightController extends Contract { public static final String[] BINARY_ARRAY = { - "608060405234801561001057600080fd5b50613912806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637f762875116100b8578063c234f9131161007c578063c234f913146102b1578063cd638b2b146102c4578063d547741f146102d7578063f2829bbc146102ea578063fb0a9583146102fd578063fc4eb4821461031057600080fd5b80637f7628751461025d5780638f2a92cc1461027057806391d14854146102835780639d121b9514610296578063a217fddf146102a957600080fd5b806332d74327116100ff57806332d74327146101ef57806336568abe146102045780633dd296b51461021757806341e0737d1461022a5780634cea35a61461024a57600080fd5b806301ffc9a71461013c578063242a81d214610164578063248a9ca31461018957806325c5a118146101ba5780632f2ff15d146101da575b600080fd5b61014f61014a366004612f71565b610323565b60405190151581526020015b60405180910390f35b610177610172366004613050565b61035a565b60405161015b96959493929190613134565b6101ac6101973660046131ab565b60009081526065602052604090206001015490565b60405190815260200161015b565b6101cd6101c83660046131c4565b610381565b60405161015b9190613235565b6101ed6101e836600461325f565b610396565b005b6101ac6000805160206138bd83398151915281565b6101ed61021236600461325f565b6103c0565b6101ed61022536600461328b565b610443565b61023d6102383660046132cf565b6104e5565b60405161015b9190613332565b61014f610258366004613050565b6104f3565b6101ed61026b3660046133e3565b61057a565b61017761027e366004613050565b6105c5565b61014f61029136600461325f565b6105d8565b6101ed6102a436600461343c565b610603565b6101ac600081565b6101ed6102bf366004613530565b61065a565b6101ed6102d23660046133e3565b6106a6565b6101ed6102e536600461325f565b610773565b6101cd6102f8366004613050565b610798565b6101ed61030b366004613530565b6107f9565b6101ed61031e366004613050565b610845565b60006001600160e01b03198216637965db0b60e01b148061035457506301ffc9a760e01b6001600160e01b03198316145b92915050565b606080808080600061036d60c98861090e565b949c939b5091995097509550909350915050565b606061038f60c9848461099c565b9392505050565b6000828152606560205260409020600101546103b181610a12565b6103bb8383610a1f565b505050565b6001600160a01b03811633146104355760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61043f8282610aa5565b5050565b600061044e81610a12565b60006001600160a01b031660978460405161046991906135b7565b908152604051908190036020019020546001600160a01b031614156103bb576104a06000805160206138bd83398151915283610a1f565b816097846040516104b191906135b7565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b606061038f60c98484610b0c565b6000806001600160a01b031660978360405161050f91906135b7565b908152604051908190036020019020546001600160a01b03161461056d576103546000805160206138bd83398151915260978460405161054f91906135b7565b908152604051908190036020019020546001600160a01b03166105d8565b506000919050565b919050565b61058460c9610cf8565b6105b06040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b6105b982610e7f565b61043f60c98383610ed9565b606080808080600061036d60c988610fa8565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61060d60c9610cf8565b6106396040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b61064960c9878787878787610fc4565b610652866113a9565b505050505050565b61066460c9610cf8565b6106906040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b61069983610e7f565b6103bb60c98484846113ec565b6106b060c9610cf8565b6106dc6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b6106e58261143b565b1515600114806106fe57506106f8611554565b15156001145b61075e5760405162461bcd60e51b815260206004820152602b60248201527f53656e646572206e65697468657220746865206f776e6572206e6f722074686560448201526a1030baba3437b934ba3c9760a91b606482015260840161042c565b61076782610e7f565b61043f60c9838361159a565b60008281526065602052604090206001015461078e81610a12565b6103bb8383610aa5565b606060006107f1836040518060400160405280600881526020016732b4b21d3732bb9d60c11b815250604051806040016040528060058152602001641c9a59da1d60da1b81525060c9611602909392919063ffffffff16565b949350505050565b61080360c9610cf8565b61082f6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b61083883610e7f565b6103bb60c984848461162f565b600061085081610a12565b60006001600160a01b031660978360405161086b91906135b7565b908152604051908190036020019020546001600160a01b03161461043f576108c96000805160206138bd8339815191526097846040516108ab91906135b7565b908152604051908190036020019020546001600160a01b0316610aa5565b60006097836040516108db91906135b7565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b606080606080606060006109228888611677565b151560011461096e5760405162461bcd60e51b81526020600482015260186024820152773ab23934903737ba1032bc34b9ba1037b71031b430b4b71760411b604482015260640161042c565b600061097a89896116d2565b90506109868982611722565b949e939d50919b50995097509095509350505050565b606060006109e08585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118b292505050565b9050610a098582604051806040016040528060048152602001637564726960e01b8152506118d3565b95945050505050565b610a1c813361192d565b50565b610a2982826105d8565b61043f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610a613390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610aaf82826105d8565b1561043f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610b188484611677565b1515600114610b645760405162461bcd60e51b81526020600482015260186024820152773ab23934903737ba1032bc34b9ba1037b71031b430b4b71760411b604482015260640161042c565b6000610b7085856116d2565b90506000610b7d86611986565b90506000805b82518163ffffffff161015610be757610bbd888588868563ffffffff1681518110610bb057610bb06135d3565b60200260200101516119e2565b151560011415610bd557610bd26001836135ff565b91505b80610bdf81613627565b915050610b83565b5063ffffffff811615610cee5760008163ffffffff166001600160401b03811115610c1457610c14612f9b565b604051908082528060200260200182016040528015610c4757816020015b6060815260200190600190039081610c325790505b5090506000805b84518163ffffffff161015610ce857610c7b8a878a888563ffffffff1681518110610bb057610bb06135d3565b151560011415610cd657848163ffffffff1681518110610c9d57610c9d6135d3565b6020026020010151838363ffffffff1681518110610cbd57610cbd6135d3565b6020908102919091010152610cd36001836135ff565b91505b80610ce081613627565b915050610c4e565b50909450505b5050509392505050565b610d0181611a7a565b60408051808201909152601981527f436f6e747261637420697320696e61636365737369626c652e00000000000000602082015290151560011461043f5760405162461bcd60e51b815260040161042c9190613235565b600080610d6660c933611a96565b9092509050600182151514610d8d5760405162461bcd60e51b815260040161042c9061364b565b6000610d9a60c983611b4c565b9050610e1360405180604001604052806005815260200164195e1a5cdd60da1b815250610e0d610e03610df8886040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b815250611b7690919063ffffffff16565b805160209091012090565b6006850190611ba2565b90611c45565b1515600114610e795760405162461bcd60e51b815260206004820152602c60248201527f5573657220776974686f757420636f72726573706f6e64696e6720726f6c652060448201526b3832b936b4b9b9b4b7b7399760a11b606482015260840161042c565b50505050565b610e888161143b565b1515600114610a1c5760405162461bcd60e51b815260206004820152601d60248201527f53656e646572206973206e6f742065766964656e6365206f776e65722e000000604482015260640161042c565b6000815111610f225760405162461bcd60e51b81526020600482015260156024820152747661726961626c654461746120697320656d70747960581b604482015260640161042c565b60028151610f309190613682565b15610f4d5760405162461bcd60e51b815260040161042c906136a4565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090610f769084611b76565b805190602001209050610e798482604051806040016040528060058152602001641c9a59da1d60da1b81525085611c6a565b606080606080606060008061097a898980519060200120611da3565b83516002146110155760405162461bcd60e51b8152602060048201", - "52601c60248201527f54686572652073686f756c642062652032204461746120486173682e00000000604482015260640161042c565b61101f8785611e17565b1561106c5760405162461bcd60e51b815260206004820152601b60248201527f44617461204861736820616c7265616479206f6e20636861696e2e0000000000604482015260640161042c565b6110768787611677565b156110bc5760405162461bcd60e51b81526020600482015260166024820152753ab239349030b63932b0b23c9037b71031b430b4b71760511b604482015260640161042c565b6110c68786611e9b565b15156001146111095760405162461bcd60e51b815260206004820152600f60248201526e2ab9b2b9103737ba1032bc34b9ba1760891b604482015260640161042c565b60006111158887611b4c565b90506111218887611ecb565b6040805180820190915260058152641c9a59da1d60da1b602082015260009061114a9089611b76565b80519060200120905061117c8982604051806040016040528060058152602001641c9a59da1d60da1b81525087611f63565b6111bf8982604051806040016040528060078152602001663b32b939b4b7b760c91b81525060405180606001604052806036815260200161388760369139612036565b6111e78982604051806040016040528060048152602001637564726960e01b8152508b612036565b61120e898260405180604001604052806003815260200162189a5960ea1b8152508a612036565b61125689826040518060400160405280600681526020016573746174757360d01b8152506040518060400160405280600681526020016561637469766560d01b815250612036565b6112828982604051806040016040528060088152602001670c8c2e8c290c2e6d60c31b8152508961205e565b61128d898783612091565b611299898289886120fb565b6112c1898289604051806040016040528060048152602001631a1bdb1960e21b8152506119e2565b151560011461131d5760405162461bcd60e51b815260206004820152602260248201527f5468652064617461207269676874205b686f6c645d2069732072657175697265604482015261321760f11b606482015260840161042c565b6113288989836121a4565b6113338988836121ed565b61135c8982604051806040016040528060058152602001641c9a59da1d60da1b81525086611c6a565b60006113898a6040518060400160405280600881526020016732b4b21d3732bb9d60c11b81525084612285565b905061139d8a82805190602001208461229a565b50505050505050505050565b806040516113b791906135b7565b6040519081900381209033907f1e9e705b89a3a7e6d3b40713f80e40e7caa22dd69d1a218b45b11050ddf9cda890600090a350565b6113f68483611ecb565b6040805180820190915260058152641c9a59da1d60da1b602082015260009061141f9085611b76565b805190602001209050611434858285856120fb565b5050505050565b60008061146e83604051806040016040528060058152602001641c9a59da1d60da1b815250611b7690919063ffffffff16565b8051602090910120905060008061148660c933611a96565b90925090506001821515146114ad5760405162461bcd60e51b815260040161042c9061364b565b60006114ba60c985612318565b905080600801546000141561150a5760405162461bcd60e51b815260206004820152601660248201527532bb34b232b731b29034b9903737ba1032bc34b9ba1760511b604482015260640161042c565b600061153d8560405180604001604052806003815260200162189a5960ea1b81525060c96118d39092919063ffffffff16565b90506115498382611c45565b979650505050505050565b6000808061156360c933611a96565b909250905060018215151461158a5760405162461bcd60e51b815260040161042c9061364b565b611593816104f3565b9250505090565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906115c39084611b76565b80519060200120905060006115f4858360405180604001604052806003815260200162189a5960ea1b8152506118d3565b90506114348583838661235e565b600060606116108386611b76565b805190602001209150611624868584612285565b905094509492505050565b6116398483611ecb565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906116629085611b76565b8051906020012090506114348582858561235e565b6000806116c86116ac84604051806040016040528060048152602001637564726960e01b815250611b7690919063ffffffff16565b8051602091820120600090815260078701909152604090205490565b1515949350505050565b600061038f61170683604051806040016040528060048152602001637564726960e01b815250611b7690919063ffffffff16565b8051602091820120600090815260078601909152604090205490565b6060806060806060600080611753898960405180604001604052806003815260200162189a5960ea1b8152506118d3565b9050600061177e8a8a604051806040016040528060048152602001637564726960e01b8152506118d3565b905060006117ad8b8b604051806040016040528060088152602001670c8c2e8c290c2e6d60c31b8152506123f1565b90506117ba8b8b85612455565b1593506000806117ca8d8d6124c9565b93509350505061180082604051806040016040528060058152602001641c9a59da1d60da1b815250611c4590919063ffffffff16565b61184c5760405162461bcd60e51b815260206004820152601a60248201527f5468697320456964206973206e6f74207269676874204569642e000000000000604482015260640161042c565b8260008151811061185f5761185f6135d3565b60200260200101519a508260018151811061187c5761187c6135d3565b602002602001015199506118918d8587610b0c565b98508097506118a18d8d84612663565b965050505050509295509295509295565b8051602080830191909120600090815260078401909152604081205461038f565b60008281526002840160205260409020600801546060906119065760405162461bcd60e51b815260040161042c906136db565b815160208084019190912060008581526002808801909352604090206107f1920190611ba2565b61193782826105d8565b61043f576119448161288d565b61194f83602061289f565b60405160200161196092919061371f565b60408051601f198184030181529082905262461bcd60e51b825261042c91600401613235565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b60209091015260607fb67aaf8c3d37a20d791807426a86a6bbc7b112706f57e87aecb8da953695759461038f6004840182612a3a565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260009081611a1b84611a158488611b76565b90611b76565b90506000611a2a8888846118d3565b604080518082019091526005815264195e1a5cdd60da1b60209182015281519101207fb0b4e07bb5592f3d3821b2c1331b436763d7be555cf452d6c6836f74d5201e851498975050505050505050565b600080611a8683612b1e565b63ffffffff166001149392505050565b6001600160a01b038116600090815260208390526040812080546060918391611abe90613794565b80601f0160208091040260200160405190810160405280929190818152602001828054611aea90613794565b8015611b375780601f10611b0c57610100808354040283529160200191611b37565b820191906000526020600020905b815481529060010190602001808311611b1a57829003601f168201915b50508351151599939850929650505050505050565b60008260010182604051611b6091906135b7565b9081526020016040518091039020905092915050565b60608282604051602001611b8b9291906137cf565b604051602081830303815290604052905092915050565b6000818152602083905260409020805460609190611bbf90613794565b80601f0160208091040260200160405190810160405280929190818152602001828054611beb90613794565b8015611c385780601f10611c0d57610100808354040283529160200191611c38565b820191906000526020600020905b815481529060010190602001808311611c1b57829003601f168201915b5050505050905092915050565b60008151835114801561038f5750508051602091820120825192909101919091201490565b60028151611c789190613682565b15611c955760405162461bcd60e51b815260040161042c906136a4565b6000611ca18585612318565b905060005b82518163ffffffff161015610652576000838263ffffffff1681518110611ccf57611ccf6135d3565b60200260200101519050600084836001611ce991906135ff565b63ffffffff1681518110611cff57611cff6135d3565b60200260200101519050611d14888784612b86565b1515600114611d765760405162461bcd60e51b815260206004820152602860248201527f50617274206f66207661726961626c6544617461206669656c64206973206e6f6044820152673a1030b63637bbb760c11b606482015260840161042c565b81516020830120611d8c90600786019083612c09565b505050600281611d9c91906135ff565b9050611ca6565b6000818152600383016020526040812054611e005760405162461bcd60e51b815260206004820152601f60248201527f45766964656e636553746f726167653a20656964206e6f742065786973747300604482015260640161042c565b506000908152600391909101602052604090205490565b6000805b82518163ffffffff161015611e91576000611e6b848363ffffffff1681518110611e4757611e476135d3565b602002602001015180519060200120866004016003016123de90919063ffffffff16565b90508015611e7e57600192505050610354565b5080611e8981613627565b915050611e1b565b5060009392505050565b60008260010182604051611eaf91906135b7565b908152604051908190036020019020600b015415159392505050565b6000815111611f085760405162461bcd60e51b81526020600482015260096024820152683134b21032b93937b960b91b604482015260640161042c565b611f128282611e9b565b151560011461043f5760405162461bcd60e51b815260206004820152601e60248201527f626974206e6f74207265676973746572206f6e207468697320636861696e0000604482015260640161042c565b600083815260028501602052604090206008015415611fd05760405162461bcd60e51b8152602060048201526024808201527f45766964656e636553746f726167653a207564726920616c72656164792065786044820152636973747360e01b606482015260840161042c565b600083815260028501602090815260", - "409091208351611ff192850190612e28565b5060008381526002850160209081526040909120825161201992600690920191840190612eac565b505050600090815260029091016020526040902042600890910155565b8151602080840191909120600085815260028088019093526040902061143492019083612c09565b611434828051906020012082866002016000878152602001908152602001600020600101612c309092919063ffffffff16565b60005b82518163ffffffff161015610e79576120e8838263ffffffff16815181106120be576120be6135d3565b60209081029190910181015180519082012060009081526007870190915260409020839055600190565b50806120f381613627565b915050612094565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260005b82518163ffffffff161015610652576000612166848363ffffffff168151811061214b5761214b6135d3565b6020026020010151611a158786611b7690919063ffffffff16565b905061219187878360405180604001604052806005815260200164195e1a5cdd60da1b815250612036565b508061219c81613627565b91505061211f565b6040805180820190915260048152637564726960e01b6020820152610e79906121cd9084611b76565b805160209182012060009081526007860190915260409020829055600190565b6000836001018360405161220191906135b7565b908152602001604051809103902090506000612251610df86122268460030154612c4c565b60408051808201909152600e81526d32afb934b3b43a1d34b73232bc1d60911b602082015290611b76565b60008181526008840160205260409020849055905060038201546122769060016137f5565b82600301819055505050505050565b60606107f161229383612c63565b8490611b76565b6000828152600384016020526040902054156123045760405162461bcd60e51b815260206004820152602360248201527f45766964656e636553746f726167653a2062696420616c72656164792065786960448201526273747360e81b606482015260840161042c565b600091825260039092016020526040902055565b60008181526002830160205260408120600801546123485760405162461bcd60e51b815260040161042c906136db565b5060009081526002919091016020526040902090565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260005b82518163ffffffff1610156106525760006123ae848363ffffffff168151811061214b5761214b6135d3565b90506123cb87878360405180602001604052806000815250612036565b50806123d681613627565b915050612382565b6000908152602091909152604090205490565b60008281526002840160205260409020600801546060906124245760405162461bcd60e51b815260040161042c906136db565b6107f18280519060200120856002016000868152602001908152602001600020600101612a3a90919063ffffffff16565b60008061246185611986565b90506000805b82518163ffffffff1610156124bc57612494878787868563ffffffff1681518110610bb057610bb06135d3565b1515600114156124aa576001935050505061038f565b806124b481613627565b915050612467565b5060009695505050505050565b60008181526002830160205260408120600881015481548392606092839281151591908390600682019082906124fe90613794565b80601f016020809104026020016040519081016040528092919081815260200182805461252a90613794565b80156125775780601f1061254c57610100808354040283529160200191612577565b820191906000526020600020905b81548152906001019060200180831161255a57829003601f168201915b5050505050915080805480602002602001604051908101604052809291908181526020016000905b8282101561264b5783829060005260206000200180546125be90613794565b80601f01602080910402602001604051908101604052809291908181526020018280546125ea90613794565b80156126375780601f1061260c57610100808354040283529160200191612637565b820191906000526020600020905b81548152906001019060200180831161261a57829003601f168201915b50505050508152602001906001019061259f565b50505050905094509450945094505092959194509250565b6060600281516126739190613682565b156126905760405162461bcd60e51b815260040161042c906136a4565b600061269c8585612318565b905060006126aa8685612c72565b90506000805b82518163ffffffff16101561272f576000838263ffffffff16815181106126d9576126d96135d3565b602002602001015190506000612702828051906020012087600701611ba290919063ffffffff16565b80519091501561271a578361271681613627565b9450505b5050808061272790613627565b9150506126b0565b5063ffffffff811615610cee5760008061274a83600261380d565b63ffffffff166001600160401b0381111561276757612767612f9b565b60405190808252806020026020018201604052801561279a57816020015b60608152602001906001900390816127855790505b50905060005b84518163ffffffff161015612880576000858263ffffffff16815181106127c9576127c96135d3565b6020026020010151905060006127f2828051906020012089600701611ba290919063ffffffff16565b80519091501561286b5781848663ffffffff1681518110612815576128156135d3565b6020908102919091010152808461282d8760016135ff565b63ffffffff1681518110612843576128436135d3565b6020026020010181905250858061285990613627565b965061286890508560026135ff565b94505b5050808061287890613627565b9150506127a0565b5098975050505050505050565b60606103546001600160a01b03831660145b606060006128ae836002613839565b6128b99060026137f5565b6001600160401b038111156128d0576128d0612f9b565b6040519080825280601f01601f1916602001820160405280156128fa576020820181803683370190505b509050600360fc1b81600081518110612915576129156135d3565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612944576129446135d3565b60200101906001600160f81b031916908160001a9053506000612968846002613839565b6129739060016137f5565b90505b60018111156129eb576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106129a7576129a76135d3565b1a60f81b8282815181106129bd576129bd6135d3565b60200101906001600160f81b031916908160001a90535060049490941c936129e481613858565b9050612976565b50831561038f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161042c565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015612b12578382906000526020600020018054612a8590613794565b80601f0160208091040260200160405190810160405280929190818152602001828054612ab190613794565b8015612afe5780601f10612ad357610100808354040283529160200191612afe565b820191906000526020600020905b815481529060010190602001808311612ae157829003601f168201915b505050505081526020019060010190612a66565b50505050905092915050565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b602082015260009061038f7f9dbfebaee4c898490164a8ab686838c633319f3806d3dea7cd93c1cfefb35e07600090815260068501602052604090205463ffffffff1690565b600080612bca83611a15604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b81525087611b7690919063ffffffff16565b80516020820120909150612bf560068701826000908152602091909152604090205463ffffffff1690565b63ffffffff16600114925050509392505050565b60008281526020848152604082208351612c2592850190612e28565b506001949350505050565b60008281526020848152604082208351612c2592850190612eac565b606061035482612c5b84612cd5565b600101612d3f565b606061035482612c5b81612cd5565b60606000612cbe6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d81525084611b7690919063ffffffff16565b80516020820120909150610a096004860182612a3a565b600080608083901c15612ced5760809290921c916010015b604083901c15612d025760409290921c916008015b602083901c15612d175760209290921c916004015b601083901c15612d2c5760109290921c916002015b600883901c156103545760010192915050565b6060826000612d4f846002613839565b6001600160401b03811115612d6657612d66612f9b565b6040519080825280601f01601f191660200182016040528015612d90576020820181803683370190505b5090506000612da0856002613839565b90505b8015612e1f576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110612dd157612dd16135d3565b1a60f81b82612de160018461386f565b81518110612df157612df16135d3565b60200101906001600160f81b031916908160001a90535060049290921c91612e1881613858565b9050612da3565b50949350505050565b828054612e3490613794565b90600052602060002090601f016020900481019282612e565760008555612e9c565b82601f10612e6f57805160ff1916838001178555612e9c565b82800160010185558215612e9c579182015b82811115612e9c578251825591602001919060010190612e81565b50612ea8929150612f05565b5090565b828054828255906000526020600020908101928215612ef9579160200282015b82811115612ef95782518051612ee9918491602090910190612e28565b5091602001919060010190612ecc565b50612ea8929150612f1a565b5b80821115612ea85760008155600101612f06565b80821115612ea8576000612f2e8282612f37565b50600101612f1a565b508054612f4390613794565b6000825580601f10612f53575050565b601f016020900490600052602060002090810190610a1c9190612f05565b600060208284031215612f8357600080fd5b81356001600160e01b03198116811461038f57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612fd957612fd9612f9b565b604052919050", - "565b600082601f830112612ff257600080fd5b81356001600160401b0381111561300b5761300b612f9b565b61301e601f8201601f1916602001612fb1565b81815284602083860101111561303357600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561306257600080fd5b81356001600160401b0381111561307857600080fd5b6107f184828501612fe1565b60005b8381101561309f578181015183820152602001613087565b83811115610e795750506000910152565b600081518084526130c8816020860160208601613084565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561312757601f198684030189526131158383516130b0565b988401989250908301906001016130f9565b5090979650505050505050565b60c08152600061314760c08301896130b0565b828103602084015261315981896130b0565b9050828103604084015261316d81886130dc565b9050828103606084015261318181876130dc565b9050828103608084015261319581866130dc565b91505082151560a0830152979650505050505050565b6000602082840312156131bd57600080fd5b5035919050565b600080602083850312156131d757600080fd5b82356001600160401b03808211156131ee57600080fd5b818501915085601f83011261320257600080fd5b81358181111561321157600080fd5b86602082850101111561322357600080fd5b60209290920196919550909350505050565b60208152600061038f60208301846130b0565b80356001600160a01b038116811461057557600080fd5b6000806040838503121561327257600080fd5b8235915061328260208401613248565b90509250929050565b6000806040838503121561329e57600080fd5b82356001600160401b038111156132b457600080fd5b6132c085828601612fe1565b92505061328260208401613248565b600080604083850312156132e257600080fd5b82356001600160401b03808211156132f957600080fd5b61330586838701612fe1565b9350602085013591508082111561331b57600080fd5b5061332885828601612fe1565b9150509250929050565b60208152600061038f60208301846130dc565b600082601f83011261335657600080fd5b813560206001600160401b038083111561337257613372612f9b565b8260051b613381838201612fb1565b938452858101830193838101908886111561339b57600080fd5b84880192505b858310156133d7578235848111156133b95760008081fd5b6133c78a87838c0101612fe1565b83525091840191908401906133a1565b98975050505050505050565b600080604083850312156133f657600080fd5b82356001600160401b038082111561340d57600080fd5b61341986838701612fe1565b9350602085013591508082111561342f57600080fd5b5061332885828601613345565b60008060008060008060c0878903121561345557600080fd5b86356001600160401b038082111561346c57600080fd5b6134788a838b01612fe1565b9750602089013591508082111561348e57600080fd5b61349a8a838b01612fe1565b965060408901359150808211156134b057600080fd5b6134bc8a838b01613345565b955060608901359150808211156134d257600080fd5b6134de8a838b01613345565b945060808901359150808211156134f457600080fd5b6135008a838b01613345565b935060a089013591508082111561351657600080fd5b5061352389828a01613345565b9150509295509295509295565b60008060006060848603121561354557600080fd5b83356001600160401b038082111561355c57600080fd5b61356887838801612fe1565b9450602086013591508082111561357e57600080fd5b61358a87838801612fe1565b935060408601359150808211156135a057600080fd5b506135ad86828701613345565b9150509250925092565b600082516135c9818460208701613084565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681851680830382111561361e5761361e6135e9565b01949350505050565b600063ffffffff80831681811415613641576136416135e9565b6001019392505050565b60208082526019908201527f53656e646572206973206e6f7420726567697374657265642e00000000000000604082015260600190565b60008261369f57634e487b7160e01b600052601260045260246000fd5b500690565b60208082526019908201527f7661726961626c6544617461206c656e677468206572726f7200000000000000604082015260600190565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613757816017850160208801613084565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613788816028840160208801613084565b01602801949350505050565b600181811c908216806137a857607f821691505b602082108114156137c957634e487b7160e01b600052602260045260246000fd5b50919050565b600083516137e1818460208801613084565b83519083019061361e818360208801613084565b60008219821115613808576138086135e9565b500190565b600063ffffffff80831681851681830481118215151615613830576138306135e9565b02949350505050565b6000816000190483118215151615613853576138536135e9565b500290565b600081613867576138676135e9565b506000190190565b600082821015613881576138816135e9565b50039056fe445245766964656e636553746f72616765436f6e7374616e742e45564944454e43455f434f4e54524143545f56455253494f4e5f563122f59c2f02edbae5c421247f029fe3112c5a85f70b4a48f5d93b22ada9ea772ea2646970667358221220141571b3309b677512312bf092e23cab50d733087aa8d6ec539e4328194aeb1364736f6c634300080b0033" + "608060405234801561001057600080fd5b5061392d806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637f762875116100b8578063c234f9131161007c578063c234f913146102b1578063cd638b2b146102c4578063d547741f146102d7578063f2829bbc146102ea578063fb0a9583146102fd578063fc4eb4821461031057600080fd5b80637f7628751461025d5780638f2a92cc1461027057806391d14854146102835780639d121b9514610296578063a217fddf146102a957600080fd5b806332d74327116100ff57806332d74327146101ef57806336568abe146102045780633dd296b51461021757806341e0737d1461022a5780634cea35a61461024a57600080fd5b806301ffc9a71461013c578063242a81d214610164578063248a9ca31461018957806325c5a118146101ba5780632f2ff15d146101da575b600080fd5b61014f61014a366004612f8c565b610323565b60405190151581526020015b60405180910390f35b61017761017236600461306b565b61035a565b60405161015b9695949392919061314f565b6101ac6101973660046131c6565b60009081526065602052604090206001015490565b60405190815260200161015b565b6101cd6101c83660046131df565b610381565b60405161015b9190613250565b6101ed6101e836600461327a565b610396565b005b6101ac6000805160206138d883398151915281565b6101ed61021236600461327a565b6103c0565b6101ed6102253660046132a6565b610443565b61023d6102383660046132ea565b6104e5565b60405161015b919061334d565b61014f61025836600461306b565b6104f3565b6101ed61026b3660046133fe565b61057a565b61017761027e36600461306b565b6105c5565b61014f61029136600461327a565b6105d8565b6101ed6102a4366004613457565b610603565b6101ac600081565b6101ed6102bf36600461354b565b61065a565b6101ed6102d23660046133fe565b6106a6565b6101ed6102e536600461327a565b610773565b6101cd6102f836600461306b565b610798565b6101ed61030b36600461354b565b6107f9565b6101ed61031e36600461306b565b610845565b60006001600160e01b03198216637965db0b60e01b148061035457506301ffc9a760e01b6001600160e01b03198316145b92915050565b606080808080600061036d60c98861090e565b949c939b5091995097509550909350915050565b606061038f60c9848461099c565b9392505050565b6000828152606560205260409020600101546103b181610a12565b6103bb8383610a1f565b505050565b6001600160a01b03811633146104355760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61043f8282610aa5565b5050565b600061044e81610a12565b60006001600160a01b031660978460405161046991906135d2565b908152604051908190036020019020546001600160a01b031614156103bb576104a06000805160206138d883398151915283610a1f565b816097846040516104b191906135d2565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b606061038f60c98484610b0c565b6000806001600160a01b031660978360405161050f91906135d2565b908152604051908190036020019020546001600160a01b03161461056d576103546000805160206138d883398151915260978460405161054f91906135d2565b908152604051908190036020019020546001600160a01b03166105d8565b506000919050565b919050565b61058460c9610cf8565b6105b06040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b6105b982610e7f565b61043f60c98383610ed9565b606080808080600061036d60c988610fa8565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61060d60c9610cf8565b6106396040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b61064960c9878787878787610fc4565b610652866113b9565b505050505050565b61066460c9610cf8565b6106906040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b61069983610e7f565b6103bb60c98484846113fc565b6106b060c9610cf8565b6106dc6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b6106e58261144b565b1515600114806106fe57506106f8611564565b15156001145b61075e5760405162461bcd60e51b815260206004820152602b60248201527f53656e646572206e65697468657220746865206f776e6572206e6f722074686560448201526a1030baba3437b934ba3c9760a91b606482015260840161042c565b61076782610e7f565b61043f60c983836115aa565b60008281526065602052604090206001015461078e81610a12565b6103bb8383610aa5565b606060006107f1836040518060400160405280600881526020016732b4b21d3732bb9d60c11b815250604051806040016040528060058152602001641c9a59da1d60da1b81525060c9611612909392919063ffffffff16565b949350505050565b61080360c9610cf8565b61082f6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610d58565b61083883610e7f565b6103bb60c984848461163f565b600061085081610a12565b60006001600160a01b031660978360405161086b91906135d2565b908152604051908190036020019020546001600160a01b03161461043f576108c96000805160206138d88339815191526097846040516108ab91906135d2565b908152604051908190036020019020546001600160a01b0316610aa5565b60006097836040516108db91906135d2565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b606080606080606060006109228888611687565b151560011461096e5760405162461bcd60e51b81526020600482015260186024820152773ab23934903737ba1032bc34b9ba1037b71031b430b4b71760411b604482015260640161042c565b600061097a89896116e2565b90506109868982611732565b949e939d50919b50995097509095509350505050565b606060006109e08585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118cd92505050565b9050610a098582604051806040016040528060048152602001637564726960e01b8152506118ee565b95945050505050565b610a1c8133611948565b50565b610a2982826105d8565b61043f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610a613390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610aaf82826105d8565b1561043f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610b188484611687565b1515600114610b645760405162461bcd60e51b81526020600482015260186024820152773ab23934903737ba1032bc34b9ba1037b71031b430b4b71760411b604482015260640161042c565b6000610b7085856116e2565b90506000610b7d866119a1565b90506000805b82518163ffffffff161015610be757610bbd888588868563ffffffff1681518110610bb057610bb06135ee565b60200260200101516119fd565b151560011415610bd557610bd260018361361a565b91505b80610bdf81613642565b915050610b83565b5063ffffffff811615610cee5760008163ffffffff166001600160401b03811115610c1457610c14612fb6565b604051908082528060200260200182016040528015610c4757816020015b6060815260200190600190039081610c325790505b5090506000805b84518163ffffffff161015610ce857610c7b8a878a888563ffffffff1681518110610bb057610bb06135ee565b151560011415610cd657848163ffffffff1681518110610c9d57610c9d6135ee565b6020026020010151838363ffffffff1681518110610cbd57610cbd6135ee565b6020908102919091010152610cd360018361361a565b91505b80610ce081613642565b915050610c4e565b50909450505b5050509392505050565b610d0181611a95565b60408051808201909152601981527f436f6e747261637420697320696e61636365737369626c652e00000000000000602082015290151560011461043f5760405162461bcd60e51b815260040161042c9190613250565b600080610d6660c933611ab1565b9092509050600182151514610d8d5760405162461bcd60e51b815260040161042c90613666565b6000610d9a60c983611b67565b9050610e1360405180604001604052806005815260200164195e1a5cdd60da1b815250610e0d610e03610df8886040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b815250611b9190919063ffffffff16565b805160209091012090565b6006850190611bbd565b90611c60565b1515600114610e795760405162461bcd60e51b815260206004820152602c60248201527f5573657220776974686f757420636f72726573706f6e64696e6720726f6c652060448201526b3832b936b4b9b9b4b7b7399760a11b606482015260840161042c565b50505050565b610e888161144b565b1515600114610a1c5760405162461bcd60e51b815260206004820152601d60248201527f53656e646572206973206e6f742065766964656e6365206f776e65722e000000604482015260640161042c565b6000815111610f225760405162461bcd60e51b81526020600482015260156024820152747661726961626c654461746120697320656d70747960581b604482015260640161042c565b60028151610f30919061369d565b15610f4d5760405162461bcd60e51b815260040161042c906136bf565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090610f769084611b91565b805190602001209050610e798482604051806040016040528060058152602001641c9a59da1d60da1b81525085611c85565b606080606080606060008061097a898980519060200120611dbe565b6001845110156110255760405162461bcd60e51b81526020600482", + "0152602660248201527f54686572652073686f756c64206265206d6f7265207468616e20312044617461604482015265102430b9b41760d11b606482015260840161042c565b61102f8785611e32565b1561107c5760405162461bcd60e51b815260206004820152601b60248201527f44617461204861736820616c7265616479206f6e20636861696e2e0000000000604482015260640161042c565b6110868787611687565b156110cc5760405162461bcd60e51b81526020600482015260166024820152753ab239349030b63932b0b23c9037b71031b430b4b71760511b604482015260640161042c565b6110d68786611eb6565b15156001146111195760405162461bcd60e51b815260206004820152600f60248201526e2ab9b2b9103737ba1032bc34b9ba1760891b604482015260640161042c565b60006111258887611b67565b90506111318887611ee6565b6040805180820190915260058152641c9a59da1d60da1b602082015260009061115a9089611b91565b80519060200120905061118c8982604051806040016040528060058152602001641c9a59da1d60da1b81525087611f7e565b6111cf8982604051806040016040528060078152602001663b32b939b4b7b760c91b8152506040518060600160405280603681526020016138a260369139612051565b6111f78982604051806040016040528060048152602001637564726960e01b8152508b612051565b61121e898260405180604001604052806003815260200162189a5960ea1b8152508a612051565b61126689826040518060400160405280600681526020016573746174757360d01b8152506040518060400160405280600681526020016561637469766560d01b815250612051565b6112928982604051806040016040528060088152602001670c8c2e8c290c2e6d60c31b81525089612079565b61129d8987836120ac565b6112a989828988612116565b6112d1898289604051806040016040528060048152602001631a1bdb1960e21b8152506119fd565b151560011461132d5760405162461bcd60e51b815260206004820152602260248201527f5468652064617461207269676874205b686f6c645d2069732072657175697265604482015261321760f11b606482015260840161042c565b6113388989836121bf565b611343898883612208565b61136c8982604051806040016040528060058152602001641c9a59da1d60da1b81525086611c85565b60006113998a6040518060400160405280600881526020016732b4b21d3732bb9d60c11b815250846122a0565b90506113ad8a8280519060200120846122b5565b50505050505050505050565b806040516113c791906135d2565b6040519081900381209033907f1e9e705b89a3a7e6d3b40713f80e40e7caa22dd69d1a218b45b11050ddf9cda890600090a350565b6114068483611ee6565b6040805180820190915260058152641c9a59da1d60da1b602082015260009061142f9085611b91565b80519060200120905061144485828585612116565b5050505050565b60008061147e83604051806040016040528060058152602001641c9a59da1d60da1b815250611b9190919063ffffffff16565b8051602090910120905060008061149660c933611ab1565b90925090506001821515146114bd5760405162461bcd60e51b815260040161042c90613666565b60006114ca60c985612333565b905080600801546000141561151a5760405162461bcd60e51b815260206004820152601660248201527532bb34b232b731b29034b9903737ba1032bc34b9ba1760511b604482015260640161042c565b600061154d8560405180604001604052806003815260200162189a5960ea1b81525060c96118ee9092919063ffffffff16565b90506115598382611c60565b979650505050505050565b6000808061157360c933611ab1565b909250905060018215151461159a5760405162461bcd60e51b815260040161042c90613666565b6115a3816104f3565b9250505090565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906115d39084611b91565b8051906020012090506000611604858360405180604001604052806003815260200162189a5960ea1b8152506118ee565b905061144485838386612379565b600060606116208386611b91565b8051906020012091506116348685846122a0565b905094509492505050565b6116498483611ee6565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906116729085611b91565b80519060200120905061144485828585612379565b6000806116d86116bc84604051806040016040528060048152602001637564726960e01b815250611b9190919063ffffffff16565b8051602091820120600090815260078701909152604090205490565b1515949350505050565b600061038f61171683604051806040016040528060048152602001637564726960e01b815250611b9190919063ffffffff16565b8051602091820120600090815260078601909152604090205490565b6060806060806060600080611763898960405180604001604052806003815260200162189a5960ea1b8152506118ee565b9050600061178e8a8a604051806040016040528060048152602001637564726960e01b8152506118ee565b905060006117bd8b8b604051806040016040528060088152602001670c8c2e8c290c2e6d60c31b81525061240c565b90506117ca8b8b85612470565b1593506000806117da8d8d6124e4565b93509350505061181082604051806040016040528060058152602001641c9a59da1d60da1b815250611c6090919063ffffffff16565b61185c5760405162461bcd60e51b815260206004820152601a60248201527f5468697320456964206973206e6f74207269676874204569642e000000000000604482015260640161042c565b8260008151811061186f5761186f6135ee565b60200260200101519a506001835111156118a15782600181518110611896576118966135ee565b602002602001015199505b6118ac8d8587610b0c565b98508097506118bc8d8d8461267e565b965050505050509295509295509295565b8051602080830191909120600090815260078401909152604081205461038f565b60008281526002840160205260409020600801546060906119215760405162461bcd60e51b815260040161042c906136f6565b815160208084019190912060008581526002808801909352604090206107f1920190611bbd565b61195282826105d8565b61043f5761195f816128a8565b61196a8360206128ba565b60405160200161197b92919061373a565b60408051601f198184030181529082905262461bcd60e51b825261042c91600401613250565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b60209091015260607fb67aaf8c3d37a20d791807426a86a6bbc7b112706f57e87aecb8da953695759461038f6004840182612a55565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260009081611a3684611a308488611b91565b90611b91565b90506000611a458888846118ee565b604080518082019091526005815264195e1a5cdd60da1b60209182015281519101207fb0b4e07bb5592f3d3821b2c1331b436763d7be555cf452d6c6836f74d5201e851498975050505050505050565b600080611aa183612b39565b63ffffffff166001149392505050565b6001600160a01b038116600090815260208390526040812080546060918391611ad9906137af565b80601f0160208091040260200160405190810160405280929190818152602001828054611b05906137af565b8015611b525780601f10611b2757610100808354040283529160200191611b52565b820191906000526020600020905b815481529060010190602001808311611b3557829003601f168201915b50508351151599939850929650505050505050565b60008260010182604051611b7b91906135d2565b9081526020016040518091039020905092915050565b60608282604051602001611ba69291906137ea565b604051602081830303815290604052905092915050565b6000818152602083905260409020805460609190611bda906137af565b80601f0160208091040260200160405190810160405280929190818152602001828054611c06906137af565b8015611c535780601f10611c2857610100808354040283529160200191611c53565b820191906000526020600020905b815481529060010190602001808311611c3657829003601f168201915b5050505050905092915050565b60008151835114801561038f5750508051602091820120825192909101919091201490565b60028151611c93919061369d565b15611cb05760405162461bcd60e51b815260040161042c906136bf565b6000611cbc8585612333565b905060005b82518163ffffffff161015610652576000838263ffffffff1681518110611cea57611cea6135ee565b60200260200101519050600084836001611d04919061361a565b63ffffffff1681518110611d1a57611d1a6135ee565b60200260200101519050611d2f888784612ba1565b1515600114611d915760405162461bcd60e51b815260206004820152602860248201527f50617274206f66207661726961626c6544617461206669656c64206973206e6f6044820152673a1030b63637bbb760c11b606482015260840161042c565b81516020830120611da790600786019083612c24565b505050600281611db7919061361a565b9050611cc1565b6000818152600383016020526040812054611e1b5760405162461bcd60e51b815260206004820152601f60248201527f45766964656e636553746f726167653a20656964206e6f742065786973747300604482015260640161042c565b506000908152600391909101602052604090205490565b6000805b82518163ffffffff161015611eac576000611e86848363ffffffff1681518110611e6257611e626135ee565b602002602001015180519060200120866004016003016123f990919063ffffffff16565b90508015611e9957600192505050610354565b5080611ea481613642565b915050611e36565b5060009392505050565b60008260010182604051611eca91906135d2565b908152604051908190036020019020600b015415159392505050565b6000815111611f235760405162461bcd60e51b81526020600482015260096024820152683134b21032b93937b960b91b604482015260640161042c565b611f2d8282611eb6565b151560011461043f5760405162461bcd60e51b815260206004820152601e60248201527f626974206e6f74207265676973746572206f6e207468697320636861696e0000604482015260640161042c565b600083815260028501602052604090206008015415611feb5760405162461bcd60e51b8152602060048201526024808201527f45766964656e636553746f726167653a207564726920616c72656164792065786044820152636973747360e01b60", + "6482015260840161042c565b60008381526002850160209081526040909120835161200c92850190612e43565b5060008381526002850160209081526040909120825161203492600690920191840190612ec7565b505050600090815260029091016020526040902042600890910155565b8151602080840191909120600085815260028088019093526040902061144492019083612c24565b611444828051906020012082866002016000878152602001908152602001600020600101612c4b9092919063ffffffff16565b60005b82518163ffffffff161015610e7957612103838263ffffffff16815181106120d9576120d96135ee565b60209081029190910181015180519082012060009081526007870190915260409020839055600190565b508061210e81613642565b9150506120af565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260005b82518163ffffffff161015610652576000612181848363ffffffff1681518110612166576121666135ee565b6020026020010151611a308786611b9190919063ffffffff16565b90506121ac87878360405180604001604052806005815260200164195e1a5cdd60da1b815250612051565b50806121b781613642565b91505061213a565b6040805180820190915260048152637564726960e01b6020820152610e79906121e89084611b91565b805160209182012060009081526007860190915260409020829055600190565b6000836001018360405161221c91906135d2565b90815260200160405180910390209050600061226c610df86122418460030154612c67565b60408051808201909152600e81526d32afb934b3b43a1d34b73232bc1d60911b602082015290611b91565b6000818152600884016020526040902084905590506003820154612291906001613810565b82600301819055505050505050565b60606107f16122ae83612c7e565b8490611b91565b60008281526003840160205260409020541561231f5760405162461bcd60e51b815260206004820152602360248201527f45766964656e636553746f726167653a2062696420616c72656164792065786960448201526273747360e81b606482015260840161042c565b600091825260039092016020526040902055565b60008181526002830160205260408120600801546123635760405162461bcd60e51b815260040161042c906136f6565b5060009081526002919091016020526040902090565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260005b82518163ffffffff1610156106525760006123c9848363ffffffff1681518110612166576121666135ee565b90506123e687878360405180602001604052806000815250612051565b50806123f181613642565b91505061239d565b6000908152602091909152604090205490565b600082815260028401602052604090206008015460609061243f5760405162461bcd60e51b815260040161042c906136f6565b6107f18280519060200120856002016000868152602001908152602001600020600101612a5590919063ffffffff16565b60008061247c856119a1565b90506000805b82518163ffffffff1610156124d7576124af878787868563ffffffff1681518110610bb057610bb06135ee565b1515600114156124c5576001935050505061038f565b806124cf81613642565b915050612482565b5060009695505050505050565b6000818152600283016020526040812060088101548154839260609283928115159190839060068201908290612519906137af565b80601f0160208091040260200160405190810160405280929190818152602001828054612545906137af565b80156125925780601f1061256757610100808354040283529160200191612592565b820191906000526020600020905b81548152906001019060200180831161257557829003601f168201915b5050505050915080805480602002602001604051908101604052809291908181526020016000905b828210156126665783829060005260206000200180546125d9906137af565b80601f0160208091040260200160405190810160405280929190818152602001828054612605906137af565b80156126525780601f1061262757610100808354040283529160200191612652565b820191906000526020600020905b81548152906001019060200180831161263557829003601f168201915b5050505050815260200190600101906125ba565b50505050905094509450945094505092959194509250565b60606002815161268e919061369d565b156126ab5760405162461bcd60e51b815260040161042c906136bf565b60006126b78585612333565b905060006126c58685612c8d565b90506000805b82518163ffffffff16101561274a576000838263ffffffff16815181106126f4576126f46135ee565b60200260200101519050600061271d828051906020012087600701611bbd90919063ffffffff16565b805190915015612735578361273181613642565b9450505b5050808061274290613642565b9150506126cb565b5063ffffffff811615610cee57600080612765836002613828565b63ffffffff166001600160401b0381111561278257612782612fb6565b6040519080825280602002602001820160405280156127b557816020015b60608152602001906001900390816127a05790505b50905060005b84518163ffffffff16101561289b576000858263ffffffff16815181106127e4576127e46135ee565b60200260200101519050600061280d828051906020012089600701611bbd90919063ffffffff16565b8051909150156128865781848663ffffffff1681518110612830576128306135ee565b6020908102919091010152808461284887600161361a565b63ffffffff168151811061285e5761285e6135ee565b6020026020010181905250858061287490613642565b9650612883905085600261361a565b94505b5050808061289390613642565b9150506127bb565b5098975050505050505050565b60606103546001600160a01b03831660145b606060006128c9836002613854565b6128d4906002613810565b6001600160401b038111156128eb576128eb612fb6565b6040519080825280601f01601f191660200182016040528015612915576020820181803683370190505b509050600360fc1b81600081518110612930576129306135ee565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061295f5761295f6135ee565b60200101906001600160f81b031916908160001a9053506000612983846002613854565b61298e906001613810565b90505b6001811115612a06576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106129c2576129c26135ee565b1a60f81b8282815181106129d8576129d86135ee565b60200101906001600160f81b031916908160001a90535060049490941c936129ff81613873565b9050612991565b50831561038f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161042c565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015612b2d578382906000526020600020018054612aa0906137af565b80601f0160208091040260200160405190810160405280929190818152602001828054612acc906137af565b8015612b195780601f10612aee57610100808354040283529160200191612b19565b820191906000526020600020905b815481529060010190602001808311612afc57829003601f168201915b505050505081526020019060010190612a81565b50505050905092915050565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b602082015260009061038f7f9dbfebaee4c898490164a8ab686838c633319f3806d3dea7cd93c1cfefb35e07600090815260068501602052604090205463ffffffff1690565b600080612be583611a30604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b81525087611b9190919063ffffffff16565b80516020820120909150612c1060068701826000908152602091909152604090205463ffffffff1690565b63ffffffff16600114925050509392505050565b60008281526020848152604082208351612c4092850190612e43565b506001949350505050565b60008281526020848152604082208351612c4092850190612ec7565b606061035482612c7684612cf0565b600101612d5a565b606061035482612c7681612cf0565b60606000612cd96040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d81525084611b9190919063ffffffff16565b80516020820120909150610a096004860182612a55565b600080608083901c15612d085760809290921c916010015b604083901c15612d1d5760409290921c916008015b602083901c15612d325760209290921c916004015b601083901c15612d475760109290921c916002015b600883901c156103545760010192915050565b6060826000612d6a846002613854565b6001600160401b03811115612d8157612d81612fb6565b6040519080825280601f01601f191660200182016040528015612dab576020820181803683370190505b5090506000612dbb856002613854565b90505b8015612e3a576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110612dec57612dec6135ee565b1a60f81b82612dfc60018461388a565b81518110612e0c57612e0c6135ee565b60200101906001600160f81b031916908160001a90535060049290921c91612e3381613873565b9050612dbe565b50949350505050565b828054612e4f906137af565b90600052602060002090601f016020900481019282612e715760008555612eb7565b82601f10612e8a57805160ff1916838001178555612eb7565b82800160010185558215612eb7579182015b82811115612eb7578251825591602001919060010190612e9c565b50612ec3929150612f20565b5090565b828054828255906000526020600020908101928215612f14579160200282015b82811115612f145782518051612f04918491602090910190612e43565b5091602001919060010190612ee7565b50612ec3929150612f35565b5b80821115612ec35760008155600101612f21565b80821115612ec3576000612f498282612f52565b50600101612f35565b508054612f5e906137af565b6000825580601f10612f6e575050565b601f016020900490600052602060002090810190610a1c9190612f20565b600060208284031215612f9e57600080fd5b81356001600160e01b03198116811461038f57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f19168101600160016040", + "1b0381118282101715612ff457612ff4612fb6565b604052919050565b600082601f83011261300d57600080fd5b81356001600160401b0381111561302657613026612fb6565b613039601f8201601f1916602001612fcc565b81815284602083860101111561304e57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561307d57600080fd5b81356001600160401b0381111561309357600080fd5b6107f184828501612ffc565b60005b838110156130ba5781810151838201526020016130a2565b83811115610e795750506000910152565b600081518084526130e381602086016020860161309f565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561314257601f198684030189526131308383516130cb565b98840198925090830190600101613114565b5090979650505050505050565b60c08152600061316260c08301896130cb565b828103602084015261317481896130cb565b9050828103604084015261318881886130f7565b9050828103606084015261319c81876130f7565b905082810360808401526131b081866130f7565b91505082151560a0830152979650505050505050565b6000602082840312156131d857600080fd5b5035919050565b600080602083850312156131f257600080fd5b82356001600160401b038082111561320957600080fd5b818501915085601f83011261321d57600080fd5b81358181111561322c57600080fd5b86602082850101111561323e57600080fd5b60209290920196919550909350505050565b60208152600061038f60208301846130cb565b80356001600160a01b038116811461057557600080fd5b6000806040838503121561328d57600080fd5b8235915061329d60208401613263565b90509250929050565b600080604083850312156132b957600080fd5b82356001600160401b038111156132cf57600080fd5b6132db85828601612ffc565b92505061329d60208401613263565b600080604083850312156132fd57600080fd5b82356001600160401b038082111561331457600080fd5b61332086838701612ffc565b9350602085013591508082111561333657600080fd5b5061334385828601612ffc565b9150509250929050565b60208152600061038f60208301846130f7565b600082601f83011261337157600080fd5b813560206001600160401b038083111561338d5761338d612fb6565b8260051b61339c838201612fcc565b93845285810183019383810190888611156133b657600080fd5b84880192505b858310156133f2578235848111156133d45760008081fd5b6133e28a87838c0101612ffc565b83525091840191908401906133bc565b98975050505050505050565b6000806040838503121561341157600080fd5b82356001600160401b038082111561342857600080fd5b61343486838701612ffc565b9350602085013591508082111561344a57600080fd5b5061334385828601613360565b60008060008060008060c0878903121561347057600080fd5b86356001600160401b038082111561348757600080fd5b6134938a838b01612ffc565b975060208901359150808211156134a957600080fd5b6134b58a838b01612ffc565b965060408901359150808211156134cb57600080fd5b6134d78a838b01613360565b955060608901359150808211156134ed57600080fd5b6134f98a838b01613360565b9450608089013591508082111561350f57600080fd5b61351b8a838b01613360565b935060a089013591508082111561353157600080fd5b5061353e89828a01613360565b9150509295509295509295565b60008060006060848603121561356057600080fd5b83356001600160401b038082111561357757600080fd5b61358387838801612ffc565b9450602086013591508082111561359957600080fd5b6135a587838801612ffc565b935060408601359150808211156135bb57600080fd5b506135c886828701613360565b9150509250925092565b600082516135e481846020870161309f565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681851680830382111561363957613639613604565b01949350505050565b600063ffffffff8083168181141561365c5761365c613604565b6001019392505050565b60208082526019908201527f53656e646572206973206e6f7420726567697374657265642e00000000000000604082015260600190565b6000826136ba57634e487b7160e01b600052601260045260246000fd5b500690565b60208082526019908201527f7661726961626c6544617461206c656e677468206572726f7200000000000000604082015260600190565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161377281601785016020880161309f565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516137a381602884016020880161309f565b01602801949350505050565b600181811c908216806137c357607f821691505b602082108114156137e457634e487b7160e01b600052602260045260246000fd5b50919050565b600083516137fc81846020880161309f565b83519083019061363981836020880161309f565b6000821982111561382357613823613604565b500190565b600063ffffffff8083168185168183048111821515161561384b5761384b613604565b02949350505050565b600081600019048311821515161561386e5761386e613604565b500290565b60008161388257613882613604565b506000190190565b60008282101561389c5761389c613604565b50039056fe445245766964656e636553746f72616765436f6e7374616e742e45564944454e43455f434f4e54524143545f56455253494f4e5f563122f59c2f02edbae5c421247f029fe3112c5a85f70b4a48f5d93b22ada9ea772ea2646970667358221220bf70ec3413c68e3a5f36f394e03ae55652a0f2e96cea1ecb3128e5358ae2967964736f6c634300080b0033" }; public static final String BINARY = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", BINARY_ARRAY); public static final String[] SM_BINARY_ARRAY = { - "608060405234801561001057600080fd5b50613929806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063b5aed06f116100b8578063dd7869331161007c578063dd786933146102a1578063de1e5c90146102b4578063de92755c146102c7578063ea7eb798146102da578063fbd3f0bf146102ed578063fd09e7d61461031057600080fd5b8063b5aed06f14610230578063b6773ad814610253578063b70b2fbc14610268578063c82ab8131461027b578063d7fcb7911461028e57600080fd5b80634d97da50116100ff5780634d97da50146101c45780635472010b146101d75780635b1e0896146101ea578063a4ff64c21461020a578063a86663271461021d57600080fd5b806317d66dc81461013c5780631b3240b8146101515780631eeffefe1461016c57806325ab202514610191578063474768bd146101a4575b600080fd5b61014f61014a366004612fa2565b610323565b005b610159600081565b6040519081526020015b60405180910390f35b61017f61017a366004613083565b6103a7565b60405161016396959493929190613164565b61017f61019f366004613083565b6103ce565b6101b76101b23660046131db565b6103e1565b604051610163919061323e565b61014f6101d23660046132ef565b6103f8565b61014f6101e5366004612fa2565b610443565b6101fd6101f8366004613083565b61046d565b6040516101639190613348565b61014f610218366004613083565b6104ce565b61014f61022b36600461335b565b610597565b61024361023e366004613083565b6105e3565b6040519015158152602001610163565b61015960008051602061389e83398151915281565b61014f6102763660046133e2565b61066a565b61014f61028936600461335b565b61070c565b61014f61029c366004613426565b610758565b61014f6102af3660046132ef565b6107af565b6101fd6102c236600461351a565b61087d565b6102436102d5366004612fa2565b61088b565b6102436102e836600461358b565b6108b6565b6101596102fb3660046135b5565b60009081526065602052604090206001015490565b61014f61031e366004612fa2565b6108eb565b6001600160a01b038116331461039957604051636381e58960e11b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6103a3828261090c565b5050565b60608080808060006103ba60c988610973565b949c939b5091995097509550909350915050565b60608080808060006103ba60c988610a02565b60606103ef60c98484610a1e565b90505b92915050565b61040260c9610c0b565b61042e6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b61043782610d95565b6103a360c98383610df3565b60008281526065602052604090206001015461045e81610ec4565b6104688383610ece565b505050565b606060006104c6836040518060400160405280600881526020016732b4b21d3732bb9d60c11b815250604051806040016040528060058152602001641c9a59da1d60da1b81525060c9610f54909392919063ffffffff16565b949350505050565b60006104d981610ec4565b60006001600160a01b03166097836040516104f491906135ce565b908152604051908190036020019020546001600160a01b0316146103a35761055260008051602061389e83398151915260978460405161053491906135ce565b908152604051908190036020019020546001600160a01b031661090c565b600060978360405161056491906135ce565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b6105a160c9610c0b565b6105cd6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b6105d683610d95565b61046860c9848484610f81565b6000806001600160a01b03166097836040516105ff91906135ce565b908152604051908190036020019020546001600160a01b03161461065d576103f260008051602061389e83398151915260978460405161063f91906135ce565b908152604051908190036020019020546001600160a01b031661088b565b506000919050565b919050565b600061067581610ec4565b60006001600160a01b031660978460405161069091906135ce565b908152604051908190036020019020546001600160a01b03161415610468576106c760008051602061389e83398151915283610ece565b816097846040516106d891906135ce565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b61071660c9610c0b565b6107426040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b61074b83610d95565b61046860c9848484610fd0565b61076260c9610c0b565b61078e6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b61079e60c9878787878787611018565b6107a786611402565b505050505050565b6107b960c9610c0b565b6107e56040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b6107ee82611445565b1515600114806108075750610801611560565b15156001145b61086857604051636381e58960e11b815260206004820152602b60248201527f53656e646572206e65697468657220746865206f776e6572206e6f722074686560448201526a1030baba3437b934ba3c9760a91b6064820152608401610390565b61087182610d95565b6103a360c983836115a7565b60606103ef60c9848461160f565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006001600160e01b03198216634df6077b60e11b14806103f25750631d4fd6f360e31b6001600160e01b03198316146103f2565b60008281526065602052604090206001015461090681610ec4565b61046883835b610916828261088b565b156103a35760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917fddf24a0d777ab37f0cd0acf6e2b0a75570d42c6500405e008f7f9a61836cf2a39190a45050565b606080606080606060006109878888611687565b15156001146109d457604051636381e58960e11b81526020600482015260186024820152773ab23934903737ba1032bc34b9ba1037b71031b430b4b71760411b6044820152606401610390565b60006109e089896116e2565b90506109ec8982611732565b949e939d50919b50995097509095509350505050565b60608060608060606000806109e08989805190602001206118c3565b6060610a2a8484611687565b1515600114610a7757604051636381e58960e11b81526020600482015260186024820152773ab23934903737ba1032bc34b9ba1037b71031b430b4b71760411b6044820152606401610390565b6000610a8385856116e2565b90506000610a9086611938565b90506000805b82518163ffffffff161015610afa57610ad0888588868563ffffffff1681518110610ac357610ac36135ea565b6020026020010151611994565b151560011415610ae857610ae5600183613616565b91505b80610af28161363e565b915050610a96565b5063ffffffff811615610c015760008163ffffffff166001600160401b03811115610b2757610b27612fce565b604051908082528060200260200182016040528015610b5a57816020015b6060815260200190600190039081610b455790505b5090506000805b84518163ffffffff161015610bfb57610b8e8a878a888563ffffffff1681518110610ac357610ac36135ea565b151560011415610be957848163ffffffff1681518110610bb057610bb06135ea565b6020026020010151838363ffffffff1681518110610bd057610bd06135ea565b6020908102919091010152610be6600183613616565b91505b80610bf38161363e565b915050610b61565b50909450505b5050509392505050565b610c1481611a2c565b60408051808201909152601981527f436f6e747261637420697320696e61636365737369626c652e0000000000000060208201529015156001146103a357604051636381e58960e11b81526004016103909190613348565b600080610c7a60c933611a48565b9092509050600182151514610ca257604051636381e58960e11b815260040161039090613662565b6000610caf60c983611afe565b9050610d2860405180604001604052806005815260200164195e1a5cdd60da1b815250610d22610d18610d0d886040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b815250611b2890919063ffffffff16565b805160209091012090565b6006850190611b54565b90611bf7565b1515600114610d8f57604051636381e58960e11b815260206004820152602c60248201527f5573657220776974686f757420636f72726573706f6e64696e6720726f6c652060448201526b3832b936b4b9b9b4b7b7399760a11b6064820152608401610390565b50505050565b610d9e81611445565b1515600114610df057604051636381e58960e11b815260206004820152601d60248201527f53656e646572206973206e6f742065766964656e6365206f776e65722e0000006044820152606401610390565b50565b6000815111610e3d57604051636381e58960e11b81526020600482015260156024820152747661726961626c654461746120697320656d70747960581b6044820152606401610390565b60028151610e4b9190613699565b15610e6957604051636381e58960e11b8152600401610390906136bb565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090610e929084611b28565b805190602001209050610d8f8482604051806040016040528060058152602001641c9a59da1d60da1b81525085611c1c565b610df08133611d57565b610ed8828261088b565b6103a35760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610f103390565b6001600160a01b0316816001600160a01b0316837f3a8c19c5eddb5ca7fdd091f00e2b3978b86344c928af4d2d7f6733572cc06b4c60405160405180910390a45050565b60006060610f628386611b28565b805190602001209150610f76868584611db1565b905094509492505050565b610f8b8483611dc6565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090610fb49085611b28565b805190602001209050610fc985828585611e60565b5050505050565b610fda8483611dc6565b6040805180", - "820190915260058152641c9a59da1d60da1b60208201526000906110039085611b28565b805190602001209050610fc985828585611efb565b835160021461106a57604051636381e58960e11b815260206004820152601c60248201527f54686572652073686f756c642062652032204461746120486173682e000000006044820152606401610390565b6110748785611f89565b156110c257604051636381e58960e11b815260206004820152601b60248201527f44617461204861736820616c7265616479206f6e20636861696e2e00000000006044820152606401610390565b6110cc8787611687565b1561111357604051636381e58960e11b81526020600482015260166024820152753ab239349030b63932b0b23c9037b71031b430b4b71760511b6044820152606401610390565b61111d878661200d565b151560011461116157604051636381e58960e11b815260206004820152600f60248201526e2ab9b2b9103737ba1032bc34b9ba1760891b6044820152606401610390565b600061116d8887611afe565b90506111798887611dc6565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906111a29089611b28565b8051906020012090506111d48982604051806040016040528060058152602001641c9a59da1d60da1b8152508761203d565b6112178982604051806040016040528060078152602001663b32b939b4b7b760c91b8152506040518060600160405280603681526020016138be60369139612111565b61123f8982604051806040016040528060048152602001637564726960e01b8152508b612111565b611266898260405180604001604052806003815260200162189a5960ea1b8152508a612111565b6112ae89826040518060400160405280600681526020016573746174757360d01b8152506040518060400160405280600681526020016561637469766560d01b815250612111565b6112da8982604051806040016040528060088152602001670c8c2e8c290c2e6d60c31b81525089612139565b6112e589878361216c565b6112f189828988611efb565b611319898289604051806040016040528060048152602001631a1bdb1960e21b815250611994565b151560011461137657604051636381e58960e11b815260206004820152602260248201527f5468652064617461207269676874205b686f6c645d2069732072657175697265604482015261321760f11b6064820152608401610390565b6113818989836121d6565b61138c89888361221f565b6113b58982604051806040016040528060058152602001641c9a59da1d60da1b81525086611c1c565b60006113e28a6040518060400160405280600881526020016732b4b21d3732bb9d60c11b81525084611db1565b90506113f68a8280519060200120846122b7565b50505050505050505050565b8060405161141091906135ce565b6040519081900381209033907f40c157c35684156b3087e01a6aaea91b9b4c2413c455634b6750f638d21160ed90600090a350565b60008061147883604051806040016040528060058152602001641c9a59da1d60da1b815250611b2890919063ffffffff16565b8051602090910120905060008061149060c933611a48565b90925090506001821515146114b857604051636381e58960e11b815260040161039090613662565b60006114c560c985612336565b905080600801546000141561151657604051636381e58960e11b815260206004820152601660248201527532bb34b232b731b29034b9903737ba1032bc34b9ba1760511b6044820152606401610390565b60006115498560405180604001604052806003815260200162189a5960ea1b81525060c961237d9092919063ffffffff16565b90506115558382611bf7565b979650505050505050565b6000808061156f60c933611a48565b909250905060018215151461159757604051636381e58960e11b815260040161039090613662565b6115a0816105e3565b9250505090565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906115d09084611b28565b8051906020012090506000611601858360405180604001604052806003815260200162189a5960ea1b81525061237d565b9050610fc985838386611e60565b606060006116538585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123d892505050565b905061167c8582604051806040016040528060048152602001637564726960e01b81525061237d565b9150505b9392505050565b6000806116d86116bc84604051806040016040528060048152602001637564726960e01b815250611b2890919063ffffffff16565b8051602091820120600090815260078701909152604090205490565b1515949350505050565b60006103ef61171683604051806040016040528060048152602001637564726960e01b815250611b2890919063ffffffff16565b8051602091820120600090815260078601909152604090205490565b6060806060806060600080611763898960405180604001604052806003815260200162189a5960ea1b81525061237d565b9050600061178e8a8a604051806040016040528060048152602001637564726960e01b81525061237d565b905060006117bd8b8b604051806040016040528060088152602001670c8c2e8c290c2e6d60c31b8152506123ff565b90506117ca8b8b85612464565b1593506000806117da8d8d6124d8565b93509350505061181082604051806040016040528060058152602001641c9a59da1d60da1b815250611bf790919063ffffffff16565b61185d57604051636381e58960e11b815260206004820152601a60248201527f5468697320456964206973206e6f74207269676874204569642e0000000000006044820152606401610390565b82600081518110611870576118706135ea565b60200260200101519a508260018151811061188d5761188d6135ea565b602002602001015199506118a28d8587610a1e565b98508097506118b28d8d84612672565b965050505050509295509295509295565b600081815260038301602052604081205461192157604051636381e58960e11b815260206004820152601f60248201527f45766964656e636553746f726167653a20656964206e6f7420657869737473006044820152606401610390565b506000908152600391909101602052604090205490565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b60209091015260607f1ef121f667bed00cfcfc37c32099dffa7438068261cb3a514d94636781844482611680600484018261289d565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b6020820152600090816119cd846119c78488611b28565b90611b28565b905060006119dc88888461237d565b604080518082019091526005815264195e1a5cdd60da1b60209182015281519101207f333682e8896f9ac5ad40b64ca8defda834eba071426a71626de981219247a47e1498975050505050505050565b600080611a3883612981565b63ffffffff166001149392505050565b6001600160a01b038116600090815260208390526040812080546060918391611a70906136f2565b80601f0160208091040260200160405190810160405280929190818152602001828054611a9c906136f2565b8015611ae95780601f10611abe57610100808354040283529160200191611ae9565b820191906000526020600020905b815481529060010190602001808311611acc57829003601f168201915b50508351151599939850929650505050505050565b60008260010182604051611b1291906135ce565b9081526020016040518091039020905092915050565b60608282604051602001611b3d92919061372d565b604051602081830303815290604052905092915050565b6000818152602083905260409020805460609190611b71906136f2565b80601f0160208091040260200160405190810160405280929190818152602001828054611b9d906136f2565b8015611bea5780601f10611bbf57610100808354040283529160200191611bea565b820191906000526020600020905b815481529060010190602001808311611bcd57829003601f168201915b5050505050905092915050565b6000815183511480156103ef5750508051602091820120825192909101919091201490565b60028151611c2a9190613699565b15611c4857604051636381e58960e11b8152600401610390906136bb565b6000611c548585612336565b905060005b82518163ffffffff1610156107a7576000838263ffffffff1681518110611c8257611c826135ea565b60200260200101519050600084836001611c9c9190613616565b63ffffffff1681518110611cb257611cb26135ea565b60200260200101519050611cc78887846129e9565b1515600114611d2a57604051636381e58960e11b815260206004820152602860248201527f50617274206f66207661726961626c6544617461206669656c64206973206e6f6044820152673a1030b63637bbb760c11b6064820152608401610390565b81516020830120611d4090600786019083612a6c565b505050600281611d509190613616565b9050611c59565b611d61828261088b565b6103a357611d6e81612a93565b611d79836020612aa5565b604051602001611d8a929190613753565b60408051601f1981840301815290829052636381e58960e11b825261039091600401613348565b60606104c6611dbf83612c41565b8490611b28565b6000815111611e0457604051636381e58960e11b81526020600482015260096024820152683134b21032b93937b960b91b6044820152606401610390565b611e0e828261200d565b15156001146103a357604051636381e58960e11b815260206004820152601e60248201527f626974206e6f74207265676973746572206f6e207468697320636861696e00006044820152606401610390565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260005b82518163ffffffff1610156107a7576000611ecb848363ffffffff1681518110611eb057611eb06135ea565b60200260200101516119c78786611b2890919063ffffffff16565b9050611ee887878360405180602001604052806000815250612111565b5080611ef38161363e565b915050611e84565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260005b82518163ffffffff1610156107a7576000611f4b848363ffffffff1681518110611eb057611eb06135ea565b9050611f7687878360405180604001604052806005815260200164195e1a5cdd60da1b815250612111565b5080611f818161363e565b915050611f1f565b6000805b82518163ffffffff161015612003576000611fdd848363ffffffff1681518110611fb957611fb96135ea565b602002602001015180519060200120866004016003016123ec90919063ffffffff16565b9050", - "8015611ff0576001925050506103f2565b5080611ffb8161363e565b915050611f8d565b5060009392505050565b6000826001018260405161202191906135ce565b908152604051908190036020019020600b015415159392505050565b6000838152600285016020526040902060080154156120ab57604051636381e58960e11b8152602060048201526024808201527f45766964656e636553746f726167653a207564726920616c72656164792065786044820152636973747360e01b6064820152608401610390565b6000838152600285016020908152604090912083516120cc92850190612e42565b506000838152600285016020908152604090912082516120f492600690920191840190612ec6565b505050600090815260029091016020526040902042600890910155565b81516020808401919091206000858152600280880190935260409020610fc992019083612a6c565b610fc9828051906020012082866002016000878152602001908152602001600020600101612c589092919063ffffffff16565b60005b82518163ffffffff161015610d8f576121c3838263ffffffff1681518110612199576121996135ea565b60209081029190910181015180519082012060009081526007870190915260409020839055600190565b50806121ce8161363e565b91505061216f565b6040805180820190915260048152637564726960e01b6020820152610d8f906121ff9084611b28565b805160209182012060009081526007860190915260409020829055600190565b6000836001018360405161223391906135ce565b908152602001604051809103902090506000612283610d0d6122588460030154612c74565b60408051808201909152600e81526d32afb934b3b43a1d34b73232bc1d60911b602082015290611b28565b60008181526008840160205260409020849055905060038201546122a89060016137c8565b82600301819055505050505050565b60008281526003840160205260409020541561232257604051636381e58960e11b815260206004820152602360248201527f45766964656e636553746f726167653a2062696420616c72656164792065786960448201526273747360e81b6064820152608401610390565b600091825260039092016020526040902055565b600081815260028301602052604081206008015461236757604051636381e58960e11b8152600401610390906137e0565b5060009081526002919091016020526040902090565b60008281526002840160205260409020600801546060906123b157604051636381e58960e11b8152600401610390906137e0565b815160208084019190912060008581526002808801909352604090206104c6920190611b54565b805160208201206000906103ef9060078501905b6000908152602091909152604090205490565b600082815260028401602052604090206008015460609061243357604051636381e58960e11b8152600401610390906137e0565b6104c6828051906020012085600201600086815260200190815260200160002060010161289d90919063ffffffff16565b60008061247085611938565b90506000805b82518163ffffffff1610156124cb576124a3878787868563ffffffff1681518110610ac357610ac36135ea565b1515600114156124b95760019350505050611680565b806124c38161363e565b915050612476565b5060009695505050505050565b600081815260028301602052604081206008810154815483926060928392811515919083906006820190829061250d906136f2565b80601f0160208091040260200160405190810160405280929190818152602001828054612539906136f2565b80156125865780601f1061255b57610100808354040283529160200191612586565b820191906000526020600020905b81548152906001019060200180831161256957829003601f168201915b5050505050915080805480602002602001604051908101604052809291908181526020016000905b8282101561265a5783829060005260206000200180546125cd906136f2565b80601f01602080910402602001604051908101604052809291908181526020018280546125f9906136f2565b80156126465780601f1061261b57610100808354040283529160200191612646565b820191906000526020600020905b81548152906001019060200180831161262957829003601f168201915b5050505050815260200190600101906125ae565b50505050905094509450945094505092959194509250565b6060600281516126829190613699565b156126a057604051636381e58960e11b8152600401610390906136bb565b60006126ac8585612336565b905060006126ba8685612c83565b90506000805b82518163ffffffff16101561273f576000838263ffffffff16815181106126e9576126e96135ea565b602002602001015190506000612712828051906020012087600701611b5490919063ffffffff16565b80519091501561272a57836127268161363e565b9450505b505080806127379061363e565b9150506126c0565b5063ffffffff811615610c015760008061275a836002613824565b63ffffffff166001600160401b0381111561277757612777612fce565b6040519080825280602002602001820160405280156127aa57816020015b60608152602001906001900390816127955790505b50905060005b84518163ffffffff161015612890576000858263ffffffff16815181106127d9576127d96135ea565b602002602001015190506000612802828051906020012089600701611b5490919063ffffffff16565b80519091501561287b5781848663ffffffff1681518110612825576128256135ea565b6020908102919091010152808461283d876001613616565b63ffffffff1681518110612853576128536135ea565b602002602001018190525085806128699061363e565b96506128789050856002613616565b94505b505080806128889061363e565b9150506127b0565b5098975050505050505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b828210156129755783829060005260206000200180546128e8906136f2565b80601f0160208091040260200160405190810160405280929190818152602001828054612914906136f2565b80156129615780601f1061293657610100808354040283529160200191612961565b820191906000526020600020905b81548152906001019060200180831161294457829003601f168201915b5050505050815260200190600101906128c9565b50505050905092915050565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b60208201526000906116807fe4f23932eff8c7a5c12e0a6fb9b7dc66fcf815724641a77260df59fd307f9a64600090815260068501602052604090205463ffffffff1690565b600080612a2d836119c7604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b81525087611b2890919063ffffffff16565b80516020820120909150612a5860068701826000908152602091909152604090205463ffffffff1690565b63ffffffff16600114925050509392505050565b60008281526020848152604082208351612a8892850190612e42565b506001949350505050565b60606103f26001600160a01b03831660145b60606000612ab4836002613850565b612abf9060026137c8565b6001600160401b03811115612ad657612ad6612fce565b6040519080825280601f01601f191660200182016040528015612b00576020820181803683370190505b509050600360fc1b81600081518110612b1b57612b1b6135ea565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612b4a57612b4a6135ea565b60200101906001600160f81b031916908160001a9053506000612b6e846002613850565b612b799060016137c8565b90505b6001811115612bf1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612bad57612bad6135ea565b1a60f81b828281518110612bc357612bc36135ea565b60200101906001600160f81b031916908160001a90535060049490941c93612bea8161386f565b9050612b7c565b5083156103ef57604051636381e58960e11b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610390565b60606103f282612c5081612cef565b600101612d59565b60008281526020848152604082208351612a8892850190612ec6565b60606103f282612c5084612cef565b60606000612ccf6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d81525084611b2890919063ffffffff16565b80516020820120909150612ce6600486018261289d565b95945050505050565b600080608083901c15612d075760809290921c916010015b604083901c15612d1c5760409290921c916008015b602083901c15612d315760209290921c916004015b601083901c15612d465760109290921c916002015b600883901c156103f25760010192915050565b6060826000612d69846002613850565b6001600160401b03811115612d8057612d80612fce565b6040519080825280601f01601f191660200182016040528015612daa576020820181803683370190505b5090506000612dba856002613850565b90505b8015612e39576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110612deb57612deb6135ea565b1a60f81b82612dfb600184613886565b81518110612e0b57612e0b6135ea565b60200101906001600160f81b031916908160001a90535060049290921c91612e328161386f565b9050612dbd565b50949350505050565b828054612e4e906136f2565b90600052602060002090601f016020900481019282612e705760008555612eb6565b82601f10612e8957805160ff1916838001178555612eb6565b82800160010185558215612eb6579182015b82811115612eb6578251825591602001919060010190612e9b565b50612ec2929150612f1f565b5090565b828054828255906000526020600020908101928215612f13579160200282015b82811115612f135782518051612f03918491602090910190612e42565b5091602001919060010190612ee6565b50612ec2929150612f34565b5b80821115612ec25760008155600101612f20565b80821115612ec2576000612f488282612f51565b50600101612f34565b508054612f5d906136f2565b6000825580601f10612f6d575050565b601f016020900490600052602060002090810190610df09190612f1f565b80356001600160a01b038116811461066557600080fd5b60008060408385031215612fb557600080fd5b82359150612fc560208401612f8b565b90509250929050565b63b95aa35560e01b600052604160045260", - "246000fd5b604051601f8201601f191681016001600160401b038111828210171561300c5761300c612fce565b604052919050565b600082601f83011261302557600080fd5b81356001600160401b0381111561303e5761303e612fce565b613051601f8201601f1916602001612fe4565b81815284602083860101111561306657600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561309557600080fd5b81356001600160401b038111156130ab57600080fd5b6104c684828501613014565b60005b838110156130d25781810151838201526020016130ba565b83811115610d8f5750506000910152565b600081518084526130fb8160208601602086016130b7565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156131575782840389526131458483516130e3565b9885019893509084019060010161312d565b5091979650505050505050565b60c08152600061317760c08301896130e3565b828103602084015261318981896130e3565b9050828103604084015261319d818861310f565b905082810360608401526131b1818761310f565b905082810360808401526131c5818661310f565b91505082151560a0830152979650505050505050565b600080604083850312156131ee57600080fd5b82356001600160401b038082111561320557600080fd5b61321186838701613014565b9350602085013591508082111561322757600080fd5b5061323485828601613014565b9150509250929050565b6020815260006103ef602083018461310f565b600082601f83011261326257600080fd5b813560206001600160401b038083111561327e5761327e612fce565b8260051b61328d838201612fe4565b93845285810183019383810190888611156132a757600080fd5b84880192505b858310156132e3578235848111156132c55760008081fd5b6132d38a87838c0101613014565b83525091840191908401906132ad565b98975050505050505050565b6000806040838503121561330257600080fd5b82356001600160401b038082111561331957600080fd5b61332586838701613014565b9350602085013591508082111561333b57600080fd5b5061323485828601613251565b6020815260006103ef60208301846130e3565b60008060006060848603121561337057600080fd5b83356001600160401b038082111561338757600080fd5b61339387838801613014565b945060208601359150808211156133a957600080fd5b6133b587838801613014565b935060408601359150808211156133cb57600080fd5b506133d886828701613251565b9150509250925092565b600080604083850312156133f557600080fd5b82356001600160401b0381111561340b57600080fd5b61341785828601613014565b925050612fc560208401612f8b565b60008060008060008060c0878903121561343f57600080fd5b86356001600160401b038082111561345657600080fd5b6134628a838b01613014565b9750602089013591508082111561347857600080fd5b6134848a838b01613014565b9650604089013591508082111561349a57600080fd5b6134a68a838b01613251565b955060608901359150808211156134bc57600080fd5b6134c88a838b01613251565b945060808901359150808211156134de57600080fd5b6134ea8a838b01613251565b935060a089013591508082111561350057600080fd5b5061350d89828a01613251565b9150509295509295509295565b6000806020838503121561352d57600080fd5b82356001600160401b038082111561354457600080fd5b818501915085601f83011261355857600080fd5b81358181111561356757600080fd5b86602082850101111561357957600080fd5b60209290920196919550909350505050565b60006020828403121561359d57600080fd5b81356001600160e01b0319811681146103ef57600080fd5b6000602082840312156135c757600080fd5b5035919050565b600082516135e08184602087016130b7565b9190910192915050565b63b95aa35560e01b600052603260045260246000fd5b63b95aa35560e01b600052601160045260246000fd5b600063ffffffff80831681851680830382111561363557613635613600565b01949350505050565b600063ffffffff8083168181141561365857613658613600565b6001019392505050565b60208082526019908201527f53656e646572206973206e6f7420726567697374657265642e00000000000000604082015260600190565b6000826136b65763b95aa35560e01b600052601260045260246000fd5b500690565b60208082526019908201527f7661726961626c6544617461206c656e677468206572726f7200000000000000604082015260600190565b600181811c9082168061370657607f821691505b602082108114156137275763b95aa35560e01b600052602260045260246000fd5b50919050565b6000835161373f8184602088016130b7565b8351908301906136358183602088016130b7565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161378b8160178501602088016130b7565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516137bc8160288401602088016130b7565b01602801949350505050565b600082198211156137db576137db613600565b500190565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b600063ffffffff8083168185168183048111821515161561384757613847613600565b02949350505050565b600081600019048311821515161561386a5761386a613600565b500290565b60008161387e5761387e613600565b506000190190565b60008282101561389857613898613600565b50039056fecda5c054d055f48a2866e1a28d72f8145e422f1db1872bc4c9fe2888702c9f8d445245766964656e636553746f72616765436f6e7374616e742e45564944454e43455f434f4e54524143545f56455253494f4e5f5631a264697066735822122069b34d03d47f9a6a7c8d25941dab553dc2eea0ebc58c0c7c51db81457405562964736f6c634300080b0033" + "608060405234801561001057600080fd5b50613947806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063b5aed06f116100b8578063dd7869331161007c578063dd786933146102a1578063de1e5c90146102b4578063de92755c146102c7578063ea7eb798146102da578063fbd3f0bf146102ed578063fd09e7d61461031057600080fd5b8063b5aed06f14610230578063b6773ad814610253578063b70b2fbc14610268578063c82ab8131461027b578063d7fcb7911461028e57600080fd5b80634d97da50116100ff5780634d97da50146101c45780635472010b146101d75780635b1e0896146101ea578063a4ff64c21461020a578063a86663271461021d57600080fd5b806317d66dc81461013c5780631b3240b8146101515780631eeffefe1461016c57806325ab202514610191578063474768bd146101a4575b600080fd5b61014f61014a366004612fbd565b610323565b005b610159600081565b6040519081526020015b60405180910390f35b61017f61017a36600461309e565b6103a7565b60405161016396959493929190613182565b61017f61019f36600461309e565b6103ce565b6101b76101b23660046131f9565b6103e1565b604051610163919061325c565b61014f6101d236600461330d565b6103f8565b61014f6101e5366004612fbd565b610443565b6101fd6101f836600461309e565b61046d565b6040516101639190613366565b61014f61021836600461309e565b6104ce565b61014f61022b366004613379565b610597565b61024361023e36600461309e565b6105e3565b6040519015158152602001610163565b6101596000805160206138bc83398151915281565b61014f610276366004613400565b61066a565b61014f610289366004613379565b61070c565b61014f61029c366004613444565b610758565b61014f6102af36600461330d565b6107af565b6101fd6102c2366004613538565b61087d565b6102436102d5366004612fbd565b61088b565b6102436102e83660046135a9565b6108b6565b6101596102fb3660046135d3565b60009081526065602052604090206001015490565b61014f61031e366004612fbd565b6108eb565b6001600160a01b038116331461039957604051636381e58960e11b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6103a3828261090c565b5050565b60608080808060006103ba60c988610973565b949c939b5091995097509550909350915050565b60608080808060006103ba60c988610a02565b60606103ef60c98484610a1e565b90505b92915050565b61040260c9610c0b565b61042e6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b61043782610d95565b6103a360c98383610df3565b60008281526065602052604090206001015461045e81610ec4565b6104688383610ece565b505050565b606060006104c6836040518060400160405280600881526020016732b4b21d3732bb9d60c11b815250604051806040016040528060058152602001641c9a59da1d60da1b81525060c9610f54909392919063ffffffff16565b949350505050565b60006104d981610ec4565b60006001600160a01b03166097836040516104f491906135ec565b908152604051908190036020019020546001600160a01b0316146103a3576105526000805160206138bc83398151915260978460405161053491906135ec565b908152604051908190036020019020546001600160a01b031661090c565b600060978360405161056491906135ec565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b6105a160c9610c0b565b6105cd6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b6105d683610d95565b61046860c9848484610f81565b6000806001600160a01b03166097836040516105ff91906135ec565b908152604051908190036020019020546001600160a01b03161461065d576103f26000805160206138bc83398151915260978460405161063f91906135ec565b908152604051908190036020019020546001600160a01b031661088b565b506000919050565b919050565b600061067581610ec4565b60006001600160a01b031660978460405161069091906135ec565b908152604051908190036020019020546001600160a01b03161415610468576106c76000805160206138bc83398151915283610ece565b816097846040516106d891906135ec565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b61071660c9610c0b565b6107426040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b61074b83610d95565b61046860c9848484610fd0565b61076260c9610c0b565b61078e6040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b61079e60c9878787878787611018565b6107a786611412565b505050505050565b6107b960c9610c0b565b6107e56040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250610c6c565b6107ee82611455565b1515600114806108075750610801611570565b15156001145b61086857604051636381e58960e11b815260206004820152602b60248201527f53656e646572206e65697468657220746865206f776e6572206e6f722074686560448201526a1030baba3437b934ba3c9760a91b6064820152608401610390565b61087182610d95565b6103a360c983836115b7565b60606103ef60c9848461161f565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006001600160e01b03198216634df6077b60e11b14806103f25750631d4fd6f360e31b6001600160e01b03198316146103f2565b60008281526065602052604090206001015461090681610ec4565b61046883835b610916828261088b565b156103a35760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917fddf24a0d777ab37f0cd0acf6e2b0a75570d42c6500405e008f7f9a61836cf2a39190a45050565b606080606080606060006109878888611697565b15156001146109d457604051636381e58960e11b81526020600482015260186024820152773ab23934903737ba1032bc34b9ba1037b71031b430b4b71760411b6044820152606401610390565b60006109e089896116f2565b90506109ec8982611742565b949e939d50919b50995097509095509350505050565b60608060608060606000806109e08989805190602001206118de565b6060610a2a8484611697565b1515600114610a7757604051636381e58960e11b81526020600482015260186024820152773ab23934903737ba1032bc34b9ba1037b71031b430b4b71760411b6044820152606401610390565b6000610a8385856116f2565b90506000610a9086611953565b90506000805b82518163ffffffff161015610afa57610ad0888588868563ffffffff1681518110610ac357610ac3613608565b60200260200101516119af565b151560011415610ae857610ae5600183613634565b91505b80610af28161365c565b915050610a96565b5063ffffffff811615610c015760008163ffffffff166001600160401b03811115610b2757610b27612fe9565b604051908082528060200260200182016040528015610b5a57816020015b6060815260200190600190039081610b455790505b5090506000805b84518163ffffffff161015610bfb57610b8e8a878a888563ffffffff1681518110610ac357610ac3613608565b151560011415610be957848163ffffffff1681518110610bb057610bb0613608565b6020026020010151838363ffffffff1681518110610bd057610bd0613608565b6020908102919091010152610be6600183613634565b91505b80610bf38161365c565b915050610b61565b50909450505b5050509392505050565b610c1481611a47565b60408051808201909152601981527f436f6e747261637420697320696e61636365737369626c652e0000000000000060208201529015156001146103a357604051636381e58960e11b81526004016103909190613366565b600080610c7a60c933611a63565b9092509050600182151514610ca257604051636381e58960e11b815260040161039090613680565b6000610caf60c983611b19565b9050610d2860405180604001604052806005815260200164195e1a5cdd60da1b815250610d22610d18610d0d886040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b815250611b4390919063ffffffff16565b805160209091012090565b6006850190611b6f565b90611c12565b1515600114610d8f57604051636381e58960e11b815260206004820152602c60248201527f5573657220776974686f757420636f72726573706f6e64696e6720726f6c652060448201526b3832b936b4b9b9b4b7b7399760a11b6064820152608401610390565b50505050565b610d9e81611455565b1515600114610df057604051636381e58960e11b815260206004820152601d60248201527f53656e646572206973206e6f742065766964656e6365206f776e65722e0000006044820152606401610390565b50565b6000815111610e3d57604051636381e58960e11b81526020600482015260156024820152747661726961626c654461746120697320656d70747960581b6044820152606401610390565b60028151610e4b91906136b7565b15610e6957604051636381e58960e11b8152600401610390906136d9565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090610e929084611b43565b805190602001209050610d8f8482604051806040016040528060058152602001641c9a59da1d60da1b81525085611c37565b610df08133611d72565b610ed8828261088b565b6103a35760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610f103390565b6001600160a01b0316816001600160a01b0316837f3a8c19c5eddb5ca7fdd091f00e2b3978b86344c928af4d2d7f6733572cc06b4c60405160405180910390a45050565b60006060610f628386611b43565b805190602001209150610f76868584611dcc565b905094509492505050565b610f8b8483611de1565b6040805180820190915260058152641c9a59da1d60da1b6020820152600090610fb49085611b43565b805190602001209050610fc985828585611e7b565b5050505050565b610fda8483611de1565b6040805180", + "820190915260058152641c9a59da1d60da1b60208201526000906110039085611b43565b805190602001209050610fc985828585611f16565b60018451101561107a57604051636381e58960e11b815260206004820152602660248201527f54686572652073686f756c64206265206d6f7265207468616e20312044617461604482015265102430b9b41760d11b6064820152608401610390565b6110848785611fa4565b156110d257604051636381e58960e11b815260206004820152601b60248201527f44617461204861736820616c7265616479206f6e20636861696e2e00000000006044820152606401610390565b6110dc8787611697565b1561112357604051636381e58960e11b81526020600482015260166024820152753ab239349030b63932b0b23c9037b71031b430b4b71760511b6044820152606401610390565b61112d8786612028565b151560011461117157604051636381e58960e11b815260206004820152600f60248201526e2ab9b2b9103737ba1032bc34b9ba1760891b6044820152606401610390565b600061117d8887611b19565b90506111898887611de1565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906111b29089611b43565b8051906020012090506111e48982604051806040016040528060058152602001641c9a59da1d60da1b81525087612058565b6112278982604051806040016040528060078152602001663b32b939b4b7b760c91b8152506040518060600160405280603681526020016138dc6036913961212c565b61124f8982604051806040016040528060048152602001637564726960e01b8152508b61212c565b611276898260405180604001604052806003815260200162189a5960ea1b8152508a61212c565b6112be89826040518060400160405280600681526020016573746174757360d01b8152506040518060400160405280600681526020016561637469766560d01b81525061212c565b6112ea8982604051806040016040528060088152602001670c8c2e8c290c2e6d60c31b81525089612154565b6112f5898783612187565b61130189828988611f16565b611329898289604051806040016040528060048152602001631a1bdb1960e21b8152506119af565b151560011461138657604051636381e58960e11b815260206004820152602260248201527f5468652064617461207269676874205b686f6c645d2069732072657175697265604482015261321760f11b6064820152608401610390565b6113918989836121f1565b61139c89888361223a565b6113c58982604051806040016040528060058152602001641c9a59da1d60da1b81525086611c37565b60006113f28a6040518060400160405280600881526020016732b4b21d3732bb9d60c11b81525084611dcc565b90506114068a8280519060200120846122d2565b50505050505050505050565b8060405161142091906135ec565b6040519081900381209033907f40c157c35684156b3087e01a6aaea91b9b4c2413c455634b6750f638d21160ed90600090a350565b60008061148883604051806040016040528060058152602001641c9a59da1d60da1b815250611b4390919063ffffffff16565b805160209091012090506000806114a060c933611a63565b90925090506001821515146114c857604051636381e58960e11b815260040161039090613680565b60006114d560c985612351565b905080600801546000141561152657604051636381e58960e11b815260206004820152601660248201527532bb34b232b731b29034b9903737ba1032bc34b9ba1760511b6044820152606401610390565b60006115598560405180604001604052806003815260200162189a5960ea1b81525060c96123989092919063ffffffff16565b90506115658382611c12565b979650505050505050565b6000808061157f60c933611a63565b90925090506001821515146115a757604051636381e58960e11b815260040161039090613680565b6115b0816105e3565b9250505090565b6040805180820190915260058152641c9a59da1d60da1b60208201526000906115e09084611b43565b8051906020012090506000611611858360405180604001604052806003815260200162189a5960ea1b815250612398565b9050610fc985838386611e7b565b606060006116638585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123f392505050565b905061168c8582604051806040016040528060048152602001637564726960e01b815250612398565b9150505b9392505050565b6000806116e86116cc84604051806040016040528060048152602001637564726960e01b815250611b4390919063ffffffff16565b8051602091820120600090815260078701909152604090205490565b1515949350505050565b60006103ef61172683604051806040016040528060048152602001637564726960e01b815250611b4390919063ffffffff16565b8051602091820120600090815260078601909152604090205490565b6060806060806060600080611773898960405180604001604052806003815260200162189a5960ea1b815250612398565b9050600061179e8a8a604051806040016040528060048152602001637564726960e01b815250612398565b905060006117cd8b8b604051806040016040528060088152602001670c8c2e8c290c2e6d60c31b81525061241a565b90506117da8b8b8561247f565b1593506000806117ea8d8d6124f3565b93509350505061182082604051806040016040528060058152602001641c9a59da1d60da1b815250611c1290919063ffffffff16565b61186d57604051636381e58960e11b815260206004820152601a60248201527f5468697320456964206973206e6f74207269676874204569642e0000000000006044820152606401610390565b8260008151811061188057611880613608565b60200260200101519a506001835111156118b257826001815181106118a7576118a7613608565b602002602001015199505b6118bd8d8587610a1e565b98508097506118cd8d8d8461268d565b965050505050509295509295509295565b600081815260038301602052604081205461193c57604051636381e58960e11b815260206004820152601f60248201527f45766964656e636553746f726167653a20656964206e6f7420657869737473006044820152606401610390565b506000908152600391909101602052604090205490565b6040805180820190915260148152733230ba30afb934b3b43a2fb1b0ba32b3b7b93c9d60611b60209091015260607f1ef121f667bed00cfcfc37c32099dffa7438068261cb3a514d9463678184448261169060048401826128b8565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b6020820152600090816119e8846119e28488611b43565b90611b43565b905060006119f7888884612398565b604080518082019091526005815264195e1a5cdd60da1b60209182015281519101207f333682e8896f9ac5ad40b64ca8defda834eba071426a71626de981219247a47e1498975050505050505050565b600080611a538361299c565b63ffffffff166001149392505050565b6001600160a01b038116600090815260208390526040812080546060918391611a8b90613710565b80601f0160208091040260200160405190810160405280929190818152602001828054611ab790613710565b8015611b045780601f10611ad957610100808354040283529160200191611b04565b820191906000526020600020905b815481529060010190602001808311611ae757829003601f168201915b50508351151599939850929650505050505050565b60008260010182604051611b2d91906135ec565b9081526020016040518091039020905092915050565b60608282604051602001611b5892919061374b565b604051602081830303815290604052905092915050565b6000818152602083905260409020805460609190611b8c90613710565b80601f0160208091040260200160405190810160405280929190818152602001828054611bb890613710565b8015611c055780601f10611bda57610100808354040283529160200191611c05565b820191906000526020600020905b815481529060010190602001808311611be857829003601f168201915b5050505050905092915050565b6000815183511480156103ef5750508051602091820120825192909101919091201490565b60028151611c4591906136b7565b15611c6357604051636381e58960e11b8152600401610390906136d9565b6000611c6f8585612351565b905060005b82518163ffffffff1610156107a7576000838263ffffffff1681518110611c9d57611c9d613608565b60200260200101519050600084836001611cb79190613634565b63ffffffff1681518110611ccd57611ccd613608565b60200260200101519050611ce2888784612a04565b1515600114611d4557604051636381e58960e11b815260206004820152602860248201527f50617274206f66207661726961626c6544617461206669656c64206973206e6f6044820152673a1030b63637bbb760c11b6064820152608401610390565b81516020830120611d5b90600786019083612a87565b505050600281611d6b9190613634565b9050611c74565b611d7c828261088b565b6103a357611d8981612aae565b611d94836020612ac0565b604051602001611da5929190613771565b60408051601f1981840301815290829052636381e58960e11b825261039091600401613366565b60606104c6611dda83612c5c565b8490611b43565b6000815111611e1f57604051636381e58960e11b81526020600482015260096024820152683134b21032b93937b960b91b6044820152606401610390565b611e298282612028565b15156001146103a357604051636381e58960e11b815260206004820152601e60248201527f626974206e6f74207265676973746572206f6e207468697320636861696e00006044820152606401610390565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260005b82518163ffffffff1610156107a7576000611ee6848363ffffffff1681518110611ecb57611ecb613608565b60200260200101516119e28786611b4390919063ffffffff16565b9050611f038787836040518060200160405280600081525061212c565b5080611f0e8161365c565b915050611e9f565b60408051808201909152600a8152693230ba30a934b3b43a1d60b11b602082015260005b82518163ffffffff1610156107a7576000611f66848363ffffffff1681518110611ecb57611ecb613608565b9050611f9187878360405180604001604052806005815260200164195e1a5cdd60da1b81525061212c565b5080611f9c8161365c565b915050611f3a565b6000805b82518163ffffffff16101561201e576000611ff8848363ffffffff1681518110611fd457611fd4613608565b6020026020010151805190", + "602001208660040160030161240790919063ffffffff16565b9050801561200b576001925050506103f2565b50806120168161365c565b915050611fa8565b5060009392505050565b6000826001018260405161203c91906135ec565b908152604051908190036020019020600b015415159392505050565b6000838152600285016020526040902060080154156120c657604051636381e58960e11b8152602060048201526024808201527f45766964656e636553746f726167653a207564726920616c72656164792065786044820152636973747360e01b6064820152608401610390565b6000838152600285016020908152604090912083516120e792850190612e5d565b5060008381526002850160209081526040909120825161210f92600690920191840190612ee1565b505050600090815260029091016020526040902042600890910155565b81516020808401919091206000858152600280880190935260409020610fc992019083612a87565b610fc9828051906020012082866002016000878152602001908152602001600020600101612c739092919063ffffffff16565b60005b82518163ffffffff161015610d8f576121de838263ffffffff16815181106121b4576121b4613608565b60209081029190910181015180519082012060009081526007870190915260409020839055600190565b50806121e98161365c565b91505061218a565b6040805180820190915260048152637564726960e01b6020820152610d8f9061221a9084611b43565b805160209182012060009081526007860190915260409020829055600190565b6000836001018360405161224e91906135ec565b90815260200160405180910390209050600061229e610d0d6122738460030154612c8f565b60408051808201909152600e81526d32afb934b3b43a1d34b73232bc1d60911b602082015290611b43565b60008181526008840160205260409020849055905060038201546122c39060016137e6565b82600301819055505050505050565b60008281526003840160205260409020541561233d57604051636381e58960e11b815260206004820152602360248201527f45766964656e636553746f726167653a2062696420616c72656164792065786960448201526273747360e81b6064820152608401610390565b600091825260039092016020526040902055565b600081815260028301602052604081206008015461238257604051636381e58960e11b8152600401610390906137fe565b5060009081526002919091016020526040902090565b60008281526002840160205260409020600801546060906123cc57604051636381e58960e11b8152600401610390906137fe565b815160208084019190912060008581526002808801909352604090206104c6920190611b6f565b805160208201206000906103ef9060078501905b6000908152602091909152604090205490565b600082815260028401602052604090206008015460609061244e57604051636381e58960e11b8152600401610390906137fe565b6104c682805190602001208560020160008681526020019081526020016000206001016128b890919063ffffffff16565b60008061248b85611953565b90506000805b82518163ffffffff1610156124e6576124be878787868563ffffffff1681518110610ac357610ac3613608565b1515600114156124d45760019350505050611690565b806124de8161365c565b915050612491565b5060009695505050505050565b600081815260028301602052604081206008810154815483926060928392811515919083906006820190829061252890613710565b80601f016020809104026020016040519081016040528092919081815260200182805461255490613710565b80156125a15780601f10612576576101008083540402835291602001916125a1565b820191906000526020600020905b81548152906001019060200180831161258457829003601f168201915b5050505050915080805480602002602001604051908101604052809291908181526020016000905b828210156126755783829060005260206000200180546125e890613710565b80601f016020809104026020016040519081016040528092919081815260200182805461261490613710565b80156126615780601f1061263657610100808354040283529160200191612661565b820191906000526020600020905b81548152906001019060200180831161264457829003601f168201915b5050505050815260200190600101906125c9565b50505050905094509450945094505092959194509250565b60606002815161269d91906136b7565b156126bb57604051636381e58960e11b8152600401610390906136d9565b60006126c78585612351565b905060006126d58685612c9e565b90506000805b82518163ffffffff16101561275a576000838263ffffffff168151811061270457612704613608565b60200260200101519050600061272d828051906020012087600701611b6f90919063ffffffff16565b80519091501561274557836127418161365c565b9450505b505080806127529061365c565b9150506126db565b5063ffffffff811615610c0157600080612775836002613842565b63ffffffff166001600160401b0381111561279257612792612fe9565b6040519080825280602002602001820160405280156127c557816020015b60608152602001906001900390816127b05790505b50905060005b84518163ffffffff1610156128ab576000858263ffffffff16815181106127f4576127f4613608565b60200260200101519050600061281d828051906020012089600701611b6f90919063ffffffff16565b8051909150156128965781848663ffffffff168151811061284057612840613608565b60209081029190910101528084612858876001613634565b63ffffffff168151811061286e5761286e613608565b602002602001018190525085806128849061365c565b96506128939050856002613634565b94505b505080806128a39061365c565b9150506127cb565b5098975050505050505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b8282101561299057838290600052602060002001805461290390613710565b80601f016020809104026020016040519081016040528092919081815260200182805461292f90613710565b801561297c5780601f106129515761010080835404028352916020019161297c565b820191906000526020600020905b81548152906001019060200180831161295f57829003601f168201915b5050505050815260200190600101906128e4565b50505050905092915050565b60408051808201909152601081526f636f6e74726f6c5f656e61626c65643d60801b60208201526000906116907fe4f23932eff8c7a5c12e0a6fb9b7dc66fcf815724641a77260df59fd307f9a64600090815260068501602052604090205463ffffffff1690565b600080612a48836119e2604051806040016040528060128152602001717661726961626c655f646174613a6b65793d60701b81525087611b4390919063ffffffff16565b80516020820120909150612a7360068701826000908152602091909152604090205463ffffffff1690565b63ffffffff16600114925050509392505050565b60008281526020848152604082208351612aa392850190612e5d565b506001949350505050565b60606103f26001600160a01b03831660145b60606000612acf83600261386e565b612ada9060026137e6565b6001600160401b03811115612af157612af1612fe9565b6040519080825280601f01601f191660200182016040528015612b1b576020820181803683370190505b509050600360fc1b81600081518110612b3657612b36613608565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612b6557612b65613608565b60200101906001600160f81b031916908160001a9053506000612b8984600261386e565b612b949060016137e6565b90505b6001811115612c0c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612bc857612bc8613608565b1a60f81b828281518110612bde57612bde613608565b60200101906001600160f81b031916908160001a90535060049490941c93612c058161388d565b9050612b97565b5083156103ef57604051636381e58960e11b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610390565b60606103f282612c6b81612d0a565b600101612d74565b60008281526020848152604082208351612aa392850190612ee1565b60606103f282612c6b84612d0a565b60606000612cea6040518060400160405280602081526020017f3a7661726961626c655f646174613a737570706f727465645f66696c6564733d81525084611b4390919063ffffffff16565b80516020820120909150612d0160048601826128b8565b95945050505050565b600080608083901c15612d225760809290921c916010015b604083901c15612d375760409290921c916008015b602083901c15612d4c5760209290921c916004015b601083901c15612d615760109290921c916002015b600883901c156103f25760010192915050565b6060826000612d8484600261386e565b6001600160401b03811115612d9b57612d9b612fe9565b6040519080825280601f01601f191660200182016040528015612dc5576020820181803683370190505b5090506000612dd585600261386e565b90505b8015612e54576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110612e0657612e06613608565b1a60f81b82612e166001846138a4565b81518110612e2657612e26613608565b60200101906001600160f81b031916908160001a90535060049290921c91612e4d8161388d565b9050612dd8565b50949350505050565b828054612e6990613710565b90600052602060002090601f016020900481019282612e8b5760008555612ed1565b82601f10612ea457805160ff1916838001178555612ed1565b82800160010185558215612ed1579182015b82811115612ed1578251825591602001919060010190612eb6565b50612edd929150612f3a565b5090565b828054828255906000526020600020908101928215612f2e579160200282015b82811115612f2e5782518051612f1e918491602090910190612e5d565b5091602001919060010190612f01565b50612edd929150612f4f565b5b80821115612edd5760008155600101612f3b565b80821115612edd576000612f638282612f6c565b50600101612f4f565b508054612f7890613710565b6000825580601f10612f88575050565b601f016020900490600052602060002090810190610df09190612f3a565b80356001600160a01b038116811461066557600080fd5b60008060408385031215612fd057600080fd5b82359150612fe060208401612fa656", + "5b90509250929050565b63b95aa35560e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561302757613027612fe9565b604052919050565b600082601f83011261304057600080fd5b81356001600160401b0381111561305957613059612fe9565b61306c601f8201601f1916602001612fff565b81815284602083860101111561308157600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156130b057600080fd5b81356001600160401b038111156130c657600080fd5b6104c68482850161302f565b60005b838110156130ed5781810151838201526020016130d5565b83811115610d8f5750506000910152565b600081518084526131168160208601602086016130d2565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561317557601f198684030189526131638383516130fe565b98840198925090830190600101613147565b5090979650505050505050565b60c08152600061319560c08301896130fe565b82810360208401526131a781896130fe565b905082810360408401526131bb818861312a565b905082810360608401526131cf818761312a565b905082810360808401526131e3818661312a565b91505082151560a0830152979650505050505050565b6000806040838503121561320c57600080fd5b82356001600160401b038082111561322357600080fd5b61322f8683870161302f565b9350602085013591508082111561324557600080fd5b506132528582860161302f565b9150509250929050565b6020815260006103ef602083018461312a565b600082601f83011261328057600080fd5b813560206001600160401b038083111561329c5761329c612fe9565b8260051b6132ab838201612fff565b93845285810183019383810190888611156132c557600080fd5b84880192505b85831015613301578235848111156132e35760008081fd5b6132f18a87838c010161302f565b83525091840191908401906132cb565b98975050505050505050565b6000806040838503121561332057600080fd5b82356001600160401b038082111561333757600080fd5b6133438683870161302f565b9350602085013591508082111561335957600080fd5b506132528582860161326f565b6020815260006103ef60208301846130fe565b60008060006060848603121561338e57600080fd5b83356001600160401b03808211156133a557600080fd5b6133b18783880161302f565b945060208601359150808211156133c757600080fd5b6133d38783880161302f565b935060408601359150808211156133e957600080fd5b506133f68682870161326f565b9150509250925092565b6000806040838503121561341357600080fd5b82356001600160401b0381111561342957600080fd5b6134358582860161302f565b925050612fe060208401612fa6565b60008060008060008060c0878903121561345d57600080fd5b86356001600160401b038082111561347457600080fd5b6134808a838b0161302f565b9750602089013591508082111561349657600080fd5b6134a28a838b0161302f565b965060408901359150808211156134b857600080fd5b6134c48a838b0161326f565b955060608901359150808211156134da57600080fd5b6134e68a838b0161326f565b945060808901359150808211156134fc57600080fd5b6135088a838b0161326f565b935060a089013591508082111561351e57600080fd5b5061352b89828a0161326f565b9150509295509295509295565b6000806020838503121561354b57600080fd5b82356001600160401b038082111561356257600080fd5b818501915085601f83011261357657600080fd5b81358181111561358557600080fd5b86602082850101111561359757600080fd5b60209290920196919550909350505050565b6000602082840312156135bb57600080fd5b81356001600160e01b0319811681146103ef57600080fd5b6000602082840312156135e557600080fd5b5035919050565b600082516135fe8184602087016130d2565b9190910192915050565b63b95aa35560e01b600052603260045260246000fd5b63b95aa35560e01b600052601160045260246000fd5b600063ffffffff8083168185168083038211156136535761365361361e565b01949350505050565b600063ffffffff808316818114156136765761367661361e565b6001019392505050565b60208082526019908201527f53656e646572206973206e6f7420726567697374657265642e00000000000000604082015260600190565b6000826136d45763b95aa35560e01b600052601260045260246000fd5b500690565b60208082526019908201527f7661726961626c6544617461206c656e677468206572726f7200000000000000604082015260600190565b600181811c9082168061372457607f821691505b602082108114156137455763b95aa35560e01b600052602260045260246000fd5b50919050565b6000835161375d8184602088016130d2565b8351908301906136538183602088016130d2565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516137a98160178501602088016130d2565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516137da8160288401602088016130d2565b01602801949350505050565b600082198211156137f9576137f961361e565b500190565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b600063ffffffff808316818516818304811182151516156138655761386561361e565b02949350505050565b60008160001904831182151516156138885761388861361e565b500290565b60008161389c5761389c61361e565b506000190190565b6000828210156138b6576138b661361e565b50039056fecda5c054d055f48a2866e1a28d72f8145e422f1db1872bc4c9fe2888702c9f8d445245766964656e636553746f72616765436f6e7374616e742e45564944454e43455f434f4e54524143545f56455253494f4e5f5631a2646970667358221220536409850c504ae080c25a1eed4d0a53d63cd7e3801376b89c6c6513b72cc44364736f6c634300080b0033" }; public static final String SM_BINARY = diff --git a/java/DREvidenceUserController.java b/java/DREvidenceUserController.java index 577660ef7e712c6374f0bbcad8d5d79f04006b9e..82d0a4e9bad2ecfb302901b41aee73917aa29304 100644 --- a/java/DREvidenceUserController.java +++ b/java/DREvidenceUserController.java @@ -33,25 +33,26 @@ import org.fisco.bcos.sdk.v3.transaction.model.exception.ContractException; @SuppressWarnings("unchecked") public class DREvidenceUserController extends Contract { public static final String[] BINARY_ARRAY = { - "608060405234801561001057600080fd5b5061253f806100206000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638a6c5203116100ad578063a484094511610071578063a48409451461028b578063abf0d06c1461029e578063c115b334146102b1578063d547741f146102c4578063fc4eb482146102d757600080fd5b80638a6c52031461022857806391d148541461023b578063948f88a41461024e578063996b4f6514610261578063a217fddf1461028357600080fd5b806330a76b38116100f457806330a76b38146101c757806332d74327146101da57806336568abe146101ef5780633dd296b5146102025780634cea35a61461021557600080fd5b806301ffc9a714610131578063114003c014610159578063236419ae1461016e578063248a9ca3146101835780632f2ff15d146101b4575b600080fd5b61014461013f366004611d19565b6102ea565b60405190151581526020015b60405180910390f35b610161610321565b6040516101509190611df7565b61018161017c366004611f5d565b610330565b005b6101a6610191366004611fc0565b60009081526065602052604090206001015490565b604051908152602001610150565b6101816101c2366004611ff0565b610362565b6101a66101d536600461201c565b610387565b6101a66000805160206124ea83398151915281565b6101816101fd366004611ff0565b61039c565b61018161021036600461208d565b61041f565b6101446102233660046120d1565b6104c1565b610181610236366004611f5d565b610548565b610144610249366004611ff0565b61056c565b61016161025c366004612105565b610597565b61027461026f3660046120d1565b6105ae565b60405161015093929190612152565b6101a6600081565b6101a661029936600461201c565b6105ca565b6101616102ac366004612105565b6105d8565b6101816102bf366004612195565b6105e7565b6101816102d2366004611ff0565b610620565b6101816102e53660046120d1565b610645565b60006001600160e01b03198216637965db0b60e01b148061031b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b606061032b61070e565b905090565b6000805160206124ea83398151915261034881610845565b61035460c98484610852565b61035d83610936565b505050565b60008281526065602052604090206001015461037d81610845565b61035d8383610979565b600061039560c984846109ff565b9392505050565b6001600160a01b03811633146104115760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61041b8282610ab1565b5050565b600061042a81610845565b60006001600160a01b03166097846040516104459190612252565b908152604051908190036020019020546001600160a01b0316141561035d5761047c6000805160206124ea83398151915283610979565b8160978460405161048d9190612252565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b6000806001600160a01b03166097836040516104dd9190612252565b908152604051908190036020019020546001600160a01b03161461053b5761031b6000805160206124ea83398151915260978460405161051d9190612252565b908152604051908190036020019020546001600160a01b031661056c565b506000919050565b919050565b6000805160206124ea83398151915261056081610845565b61035460c98484610b18565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60606105a660c9858585610bbe565b949350505050565b606080806105bd60c985610d65565b9250925092509193909250565b600061039560c98484611090565b60606105a660c985858561119b565b6000805160206124ea8339815191526105ff81610845565b61060e60c98787878787611361565b61061886866113f3565b505050505050565b60008281526065602052604090206001015461063b81610845565b61035d8383610ab1565b600061065081610845565b60006001600160a01b031660978360405161066b9190612252565b908152604051908190036020019020546001600160a01b03161461041b576106c96000805160206124ea8339815191526097846040516106ab9190612252565b908152604051908190036020019020546001600160a01b0316610ab1565b60006097836040516106db9190612252565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b60408051600480825260a0820190925260609160009190816020015b606081526020019060019003908161072a5790505090506040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b815250816000815181106107785761077861226e565b6020026020010181905250604051806040016040528060088152602001673932bb34b2bbb2b960c11b815250816001815181106107b7576107b761226e565b602002602001018190525060405180604001604052806008815260200167726567697374727960c01b815250816002815181106107f6576107f661226e565b602002602001018190525060405180604001604052806008815260200167706c6174666f726d60c01b815250816003815181106108355761083561226e565b6020908102919091010152919050565b61084f813361144d565b50565b61085c83836114a6565b151560011461087d5760405162461bcd60e51b815260040161040890612284565b600061088984846114d6565b905060005b82518163ffffffff16101561092f5761091c6109026108f7858463ffffffff16815181106108be576108be61226e565b60200260200101516040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b81525061150090919063ffffffff16565b805160209091012090565b60408051602081019091526000815260068501919061152c565b5080610927816122c3565b91505061088e565b5050505050565b806040516109449190612252565b6040519081900381209033907fdd2f0ff624b9c92ddbabb6bf255ed1f136e703bc61e7f3f5a9be8383f9a3b81390600090a350565b610983828261056c565b61041b5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556109bb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610a418484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114a692505050565b1515600114610a625760405162461bcd60e51b8152600401610408906122e7565b6000610aa48585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114d692505050565b6003015495945050505050565b610abb828261056c565b1561041b5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b610b2283836114a6565b1515600114610b435760405162461bcd60e51b815260040161040890612284565b6000610b4f84846114d6565b905060005b82518163ffffffff16101561092f57610bab610b846108f7858463ffffffff16815181106108be576108be61226e565b604080518082019091526005815264195e1a5cdd60da1b602082015260068501919061152c565b5080610bb6816122c3565b915050610b54565b6060610bca85856114a6565b1515600114610beb5760405162461bcd60e51b8152600401610408906122e7565b60008211610c2f5760405162461bcd60e51b815260206004820152601160248201527031b7bab73a1034b99034b73b30b634b21760791b6044820152606401610408565b6000610c3b86866114d6565b9050600080846001600160401b03811115610c5857610c58611e0a565b604051908082528060200260200182016040528015610c8b57816020015b6060815260200190600190039081610c765790505b509050855b610c9a8688612314565b811015610d59576000610cdd6108f7610cb284611553565b60408051808201909152600e81526d32afb934b3b43a1d34b73232bc1d60911b602082015290611500565b600081815260088701602052604081205491925050610d198b82604051806040016040528060048152602001637564726960e01b81525061156a565b848681518110610d2b57610d2b61226e565b60200260200101819052508480610d419061232c565b95505050508080610d519061232c565b915050610c90565b50979650505050505050565b6060806060610d7485856114a6565b1515600114610d955760405162461bcd60e51b815260040161040890612284565b6000610da186866114d6565b9050806001018054610db290612347565b80601f0160208091040260200160405190810160405280929190818152602001828054610dde90612347565b8015610e2b5780601f10610e0057610100808354040283529160200191610e2b565b820191906000526020600020905b815481529060010190602001808311610e0e57829003601f168201915b50505050509350806002018054610e4190612347565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6d90612347565b8015610eba5780601f10610e8f57610100808354040283529160200191610eba565b820191906000526020600020905b815481529060010190602001808311610e9d57829003601f168201915b505050505092506000610ecb61070e565b90506000805b82518163ffffffff161015610f5757610f3260405180604001604052806005815260200164195e1a5cdd60da1b815250610f2c610f226108f7878663ffffffff16815181106108be576108be61226e565b60068801906115c0565b90611663565b15610f4557610f42826001612382565b91505b80610f4f816122c3565b915050610ed1565b5063ffffffff811615611086576000808263ffffffff166001600160401b03811115610f8557610f85611e0a565b604051908082528060200260200182016040528015610fb857816020015b6060815260200190600190039081610fa35790505b50905060005b84518163ffffffff16101561108157611019604051806040016040528060058152", - "60200164195e1a5cdd60da1b815250610f2c61100f6108f7898663ffffffff16815181106108be576108be61226e565b60068a01906115c0565b1561106f57848163ffffffff16815181106110365761103661226e565b6020026020010151828463ffffffff16815181106110565761105661226e565b602090810291909101015261106c836001612382565b92505b80611079816122c3565b915050610fbe565b509450505b5050509250925092565b60006110d28484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114a692505050565b15156001146110f35760405162461bcd60e51b8152600401610408906122e7565b60006111358585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114d692505050565b60408051808201825260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b6020918201527f8e7e22a149a62d266f1366830ad13fadc3d0c42cdbb2dca110769fc88fb0ddbb6000908152600993909301905290205495945050505050565b60606111a785856114a6565b15156001146111c85760405162461bcd60e51b8152600401610408906122e7565b6000821161120c5760405162461bcd60e51b815260206004820152601160248201527031b7bab73a1034b99034b73b30b634b21760791b6044820152606401610408565b600061121886866114d6565b9050600080846001600160401b0381111561123557611235611e0a565b60405190808252806020026020018201604052801561126857816020015b60608152602001906001900390816112535790505b509050855b6112778688612314565b811015610d595760006112bb6108f761128f84611553565b60408051808201909152600f81526e32afb932bb34b2bb9d34b73232bc1d60891b602082015290611500565b60008181526008870160205260408120549192505060006113038c836040518060400160405280600e81526020016d0e4caecd2caee88c2e8c290c2e6d60931b815250611688565b9050806000815181106113185761131861226e565b60200260200101518587815181106113325761133261226e565b602002602001018190525085806113489061232c565b96505050505080806113599061232c565b91505061126d565b61136b86866114a6565b156113885760405162461bcd60e51b8152600401610408906122e7565b61139586868686866116ec565b60006113a187876114d6565b905060005b82518163ffffffff1610156113e9576113d6610b846108f7858463ffffffff16815181106108be576108be61226e565b50806113e1816122c3565b9150506113a6565b5050505050505050565b806040516114019190612252565b6040518091039020826040516114179190612252565b6040519081900381209033907fa2e1d286e25c6fce64acccdfd7a54d53cce2f617ddff648ab1dbb3458ccdd95b90600090a45050565b611457828261056c565b61041b576114648161189c565b61146f8360206118ae565b6040516020016114809291906123aa565b60408051601f198184030181529082905262461bcd60e51b82526104089160040161241f565b600082600101826040516114ba9190612252565b908152604051908190036020019020600b015415159392505050565b600082600101826040516114ea9190612252565b9081526020016040518091039020905092915050565b60608282604051602001611515929190612432565b604051602081830303815290604052905092915050565b6000828152602084815260408220835161154892850190611c80565b506001949350505050565b606061031b8261156284611a49565b600101611ab3565b600082815260028401602052604090206008015460609061159d5760405162461bcd60e51b815260040161040890612458565b815160208084019190912060008581526002808801909352604090206105a69201905b60008181526020839052604090208054606091906115dd90612347565b80601f016020809104026020016040519081016040528092919081815260200182805461160990612347565b80156116565780601f1061162b57610100808354040283529160200191611656565b820191906000526020600020905b81548152906001019060200180831161163957829003601f168201915b5050505050905092915050565b6000815183511480156103955750508051602091820120825192909101919091201490565b60008281526002840160205260409020600801546060906116bb5760405162461bcd60e51b815260040161040890612458565b6105a68280519060200120856002016000868152602001908152602001600020600101611b9c90919063ffffffff16565b84600101846040516116fe9190612252565b9081526020016040518091039020600b015460001461175f5760405162461bcd60e51b815260206004820152601f60248201527f5573657253746f726167653a2062696420616c726561647920657869737473006044820152606401610408565b6001600160a01b0381166000908152602086905260409020805461178290612347565b1590506117e15760405162461bcd60e51b815260206004820152602760248201527f45766964656e636553746f726167653a206163636f756e7420616c72656164796044820152662065786973747360c81b6064820152608401610408565b600085600101856040516117f59190612252565b908152602001604051809103902090508481600001908051906020019061181d929190611c80565b5083516118339060018301906020870190611c80565b5082516118499060028301906020860190611c80565b506000600382018190556004820180546001600160a01b0319166001600160a01b03851690811790915542600b840155815260208781526040909120865161189392880190611c80565b50505050505050565b606061031b6001600160a01b03831660145b606060006118bd83600261249c565b6118c8906002612314565b6001600160401b038111156118df576118df611e0a565b6040519080825280601f01601f191660200182016040528015611909576020820181803683370190505b509050600360fc1b816000815181106119245761192461226e565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106119535761195361226e565b60200101906001600160f81b031916908160001a905350600061197784600261249c565b611982906001612314565b90505b60018111156119fa576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106119b6576119b661226e565b1a60f81b8282815181106119cc576119cc61226e565b60200101906001600160f81b031916908160001a90535060049490941c936119f3816124bb565b9050611985565b5083156103955760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610408565b600080608083901c15611a615760809290921c916010015b604083901c15611a765760409290921c916008015b602083901c15611a8b5760209290921c916004015b601083901c15611aa05760109290921c916002015b600883901c1561031b5760010192915050565b6060826000611ac384600261249c565b6001600160401b03811115611ada57611ada611e0a565b6040519080825280601f01601f191660200182016040528015611b04576020820181803683370190505b5090506000611b1485600261249c565b90505b8015611b93576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110611b4557611b4561226e565b1a60f81b82611b556001846124d2565b81518110611b6557611b6561226e565b60200101906001600160f81b031916908160001a90535060049290921c91611b8c816124bb565b9050611b17565b50949350505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015611c74578382906000526020600020018054611be790612347565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1390612347565b8015611c605780601f10611c3557610100808354040283529160200191611c60565b820191906000526020600020905b815481529060010190602001808311611c4357829003601f168201915b505050505081526020019060010190611bc8565b50505050905092915050565b828054611c8c90612347565b90600052602060002090601f016020900481019282611cae5760008555611cf4565b82601f10611cc757805160ff1916838001178555611cf4565b82800160010185558215611cf4579182015b82811115611cf4578251825591602001919060010190611cd9565b50611d00929150611d04565b5090565b5b80821115611d005760008155600101611d05565b600060208284031215611d2b57600080fd5b81356001600160e01b03198116811461039557600080fd5b60005b83811015611d5e578181015183820152602001611d46565b83811115611d6d576000848401525b50505050565b60008151808452611d8b816020860160208601611d43565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015611dea57601f19868403018952611dd8838351611d73565b98840198925090830190600101611dbc565b5090979650505050505050565b6020815260006103956020830184611d9f565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611e4857611e48611e0a565b604052919050565b600082601f830112611e6157600080fd5b81356001600160401b03811115611e7a57611e7a611e0a565b611e8d601f8201601f1916602001611e20565b818152846020838601011115611ea257600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112611ed057600080fd5b813560206001600160401b0380831115611eec57611eec611e0a565b8260051b611efb838201611e20565b9384528581018301938381019088861115611f1557600080fd5b84880192505b85831015611f5157823584811115611f335760008081fd5b611f418a87838c0101611e50565b8352509184019190840190611f1b565b98975050505050505050565b60008060408385031215611f7057600080fd5b82356001600160401b0380821115611f8757600080fd5b611f9386838701611e50565b93506020850135915080821115611fa957600080fd5b50611fb685828601611ebf565b9150509250929050565b600060208284031215611fd257600080fd5b5035919050565b803560016001", - "60a01b038116811461054357600080fd5b6000806040838503121561200357600080fd5b8235915061201360208401611fd9565b90509250929050565b6000806020838503121561202f57600080fd5b82356001600160401b038082111561204657600080fd5b818501915085601f83011261205a57600080fd5b81358181111561206957600080fd5b86602082850101111561207b57600080fd5b60209290920196919550909350505050565b600080604083850312156120a057600080fd5b82356001600160401b038111156120b657600080fd5b6120c285828601611e50565b92505061201360208401611fd9565b6000602082840312156120e357600080fd5b81356001600160401b038111156120f957600080fd5b6105a684828501611e50565b60008060006060848603121561211a57600080fd5b83356001600160401b0381111561213057600080fd5b61213c86828701611e50565b9660208601359650604090950135949350505050565b6060815260006121656060830186611d73565b82810360208401526121778186611d73565b9050828103604084015261218b8185611d9f565b9695505050505050565b600080600080600060a086880312156121ad57600080fd5b85356001600160401b03808211156121c457600080fd5b6121d089838a01611e50565b965060208801359150808211156121e657600080fd5b6121f289838a01611e50565b9550604088013591508082111561220857600080fd5b61221489838a01611e50565b945061222260608901611fd9565b9350608088013591508082111561223857600080fd5b5061224588828901611ebf565b9150509295509295909350565b60008251612264818460208701611d43565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6020808252600f908201526e2ab9b2b9103737ba1032bc34b9ba1760891b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818114156122dd576122dd6122ad565b6001019392505050565b6020808252601390820152722ab9b2b91030b63932b0b23c9032bc34b9ba1760691b604082015260600190565b60008219821115612327576123276122ad565b500190565b6000600019821415612340576123406122ad565b5060010190565b600181811c9082168061235b57607f821691505b6020821081141561237c57634e487b7160e01b600052602260045260246000fd5b50919050565b600063ffffffff8083168185168083038211156123a1576123a16122ad565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e2816017850160208801611d43565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612413816028840160208801611d43565b01602801949350505050565b6020815260006103956020830184611d73565b60008351612444818460208801611d43565b8351908301906123a1818360208801611d43565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b60008160001904831182151516156124b6576124b66122ad565b500290565b6000816124ca576124ca6122ad565b506000190190565b6000828210156124e4576124e46122ad565b50039056fe22f59c2f02edbae5c421247f029fe3112c5a85f70b4a48f5d93b22ada9ea772ea26469706673582212204703fd85621b90dbfecd5d04d36f5695a4a222d20d9dd1d2bd283078e15fa6cf64736f6c634300080b0033" + "608060405234801561001057600080fd5b50612705806100206000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638a6c5203116100b8578063a48409451161007c578063a4840945146102c2578063abf0d06c146102d5578063c115b334146102e8578063d547741f146102fb578063eeb9ab181461030e578063fc4eb4821461033957600080fd5b80638a6c52031461025f57806391d1485414610272578063948f88a414610285578063996b4f6514610298578063a217fddf146102ba57600080fd5b806330a76b381161010a57806330a76b38146101dd57806332d74327146101f057806336568abe146102055780633dd296b5146102185780634cea35a61461022b57806369921c261461023e57600080fd5b806301ffc9a714610147578063114003c01461016f578063236419ae14610184578063248a9ca3146101995780632f2ff15d146101ca575b600080fd5b61015a610155366004611ea9565b61034c565b60405190151581526020015b60405180910390f35b610177610383565b6040516101669190611f87565b6101976101923660046120ed565b610392565b005b6101bc6101a7366004612150565b60009081526065602052604090206001015490565b604051908152602001610166565b6101976101d8366004612180565b6103c4565b6101bc6101eb3660046121ac565b6103e9565b6101bc6000805160206126b083398151915281565b610197610213366004612180565b6103fe565b61019761022636600461221d565b610481565b61015a610239366004612261565b610523565b61025161024c366004612295565b6105aa565b6040516101669291906122b0565b61019761026d3660046120ed565b6105c7565b61015a610280366004612180565b6105eb565b6101776102933660046122cb565b610616565b6102ab6102a6366004612261565b61062d565b60405161016693929190612318565b6101bc600081565b6101bc6102d03660046121ac565b610649565b6101776102e33660046122cb565b610657565b6101976102f636600461235b565b610666565b610197610309366004612180565b61069f565b61032161031c366004612261565b6106c4565b6040516001600160a01b039091168152602001610166565b610197610347366004612261565b6106d1565b60006001600160e01b03198216637965db0b60e01b148061037d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b606061038d61079a565b905090565b6000805160206126b08339815191526103aa816108d1565b6103b660c984846108de565b6103bf836109c2565b505050565b6000828152606560205260409020600101546103df816108d1565b6103bf8383610a05565b60006103f760c98484610a8b565b9392505050565b6001600160a01b03811633146104735760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61047d8282610b3d565b5050565b600061048c816108d1565b60006001600160a01b03166097846040516104a79190612418565b908152604051908190036020019020546001600160a01b031614156103bf576104de6000805160206126b083398151915283610a05565b816097846040516104ef9190612418565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b6000806001600160a01b031660978360405161053f9190612418565b908152604051908190036020019020546001600160a01b03161461059d5761037d6000805160206126b083398151915260978460405161057f9190612418565b908152604051908190036020019020546001600160a01b03166105eb565b506000919050565b919050565b6000606081806105bb60c986610ba4565b90969095509350505050565b6000805160206126b08339815191526105df816108d1565b6103b660c98484610c5a565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606061062560c9858585610d00565b949350505050565b6060808061063c60c985610ea7565b9250925092509193909250565b60006103f760c984846111d2565b606061062560c98585856112dd565b6000805160206126b083398151915261067e816108d1565b61068d60c987878787876114a3565b6106978686611535565b505050505050565b6000828152606560205260409020600101546106ba816108d1565b6103bf8383610b3d565b600061037d60c98361158f565b60006106dc816108d1565b60006001600160a01b03166097836040516106f79190612418565b908152604051908190036020019020546001600160a01b03161461047d576107556000805160206126b08339815191526097846040516107379190612418565b908152604051908190036020019020546001600160a01b0316610b3d565b60006097836040516107679190612418565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816107b65790505090506040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b8152508160008151811061080457610804612434565b6020026020010181905250604051806040016040528060088152602001673932bb34b2bbb2b960c11b8152508160018151811061084357610843612434565b602002602001018190525060405180604001604052806008815260200167726567697374727960c01b8152508160028151811061088257610882612434565b602002602001018190525060405180604001604052806008815260200167706c6174666f726d60c01b815250816003815181106108c1576108c1612434565b6020908102919091010152919050565b6108db81336115dd565b50565b6108e88383611636565b15156001146109095760405162461bcd60e51b815260040161046a9061244a565b60006109158484611666565b905060005b82518163ffffffff1610156109bb576109a861098e610983858463ffffffff168151811061094a5761094a612434565b60200260200101516040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b81525061169090919063ffffffff16565b805160209091012090565b6040805160208101909152600081526006850191906116bc565b50806109b381612489565b91505061091a565b5050505050565b806040516109d09190612418565b6040519081900381209033907fdd2f0ff624b9c92ddbabb6bf255ed1f136e703bc61e7f3f5a9be8383f9a3b81390600090a350565b610a0f82826105eb565b61047d5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610a473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610acd8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061163692505050565b1515600114610aee5760405162461bcd60e51b815260040161046a906124ad565b6000610b308585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061166692505050565b6003015495945050505050565b610b4782826105eb565b1561047d5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6001600160a01b038116600090815260208390526040812080546060918391610bcc906124da565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf8906124da565b8015610c455780601f10610c1a57610100808354040283529160200191610c45565b820191906000526020600020905b815481529060010190602001808311610c2857829003601f168201915b50508351151599939850929650505050505050565b610c648383611636565b1515600114610c855760405162461bcd60e51b815260040161046a9061244a565b6000610c918484611666565b905060005b82518163ffffffff1610156109bb57610ced610cc6610983858463ffffffff168151811061094a5761094a612434565b604080518082019091526005815264195e1a5cdd60da1b60208201526006850191906116bc565b5080610cf881612489565b915050610c96565b6060610d0c8585611636565b1515600114610d2d5760405162461bcd60e51b815260040161046a906124ad565b60008211610d715760405162461bcd60e51b815260206004820152601160248201527031b7bab73a1034b99034b73b30b634b21760791b604482015260640161046a565b6000610d7d8686611666565b9050600080846001600160401b03811115610d9a57610d9a611f9a565b604051908082528060200260200182016040528015610dcd57816020015b6060815260200190600190039081610db85790505b509050855b610ddc8688612515565b811015610e9b576000610e1f610983610df4846116e3565b60408051808201909152600e81526d32afb934b3b43a1d34b73232bc1d60911b602082015290611690565b600081815260088701602052604081205491925050610e5b8b82604051806040016040528060048152602001637564726960e01b8152506116fa565b848681518110610e6d57610e6d612434565b60200260200101819052508480610e839061252d565b95505050508080610e939061252d565b915050610dd2565b50979650505050505050565b6060806060610eb68585611636565b1515600114610ed75760405162461bcd60e51b815260040161046a9061244a565b6000610ee38686611666565b9050806001018054610ef4906124da565b80601f0160208091040260200160405190810160405280929190818152602001828054610f20906124da565b8015610f6d5780601f10610f4257610100808354040283529160200191610f6d565b820191906000526020600020905b815481529060010190602001808311610f5057829003601f168201915b50505050509350806002018054610f83906124da565b80601f0160208091040260200160405190810160405280929190818152602001828054610faf906124da565b8015610ffc5780601f10610fd157610100808354040283529160200191610ffc565b820191906000526020600020905b", + "815481529060010190602001808311610fdf57829003601f168201915b50505050509250600061100d61079a565b90506000805b82518163ffffffff1610156110995761107460405180604001604052806005815260200164195e1a5cdd60da1b81525061106e611064610983878663ffffffff168151811061094a5761094a612434565b6006880190611750565b906117f3565b1561108757611084826001612548565b91505b8061109181612489565b915050611013565b5063ffffffff8116156111c8576000808263ffffffff166001600160401b038111156110c7576110c7611f9a565b6040519080825280602002602001820160405280156110fa57816020015b60608152602001906001900390816110e55790505b50905060005b84518163ffffffff1610156111c35761115b60405180604001604052806005815260200164195e1a5cdd60da1b81525061106e611151610983898663ffffffff168151811061094a5761094a612434565b60068a0190611750565b156111b157848163ffffffff168151811061117857611178612434565b6020026020010151828463ffffffff168151811061119857611198612434565b60209081029190910101526111ae836001612548565b92505b806111bb81612489565b915050611100565b509450505b5050509250925092565b60006112148484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061163692505050565b15156001146112355760405162461bcd60e51b815260040161046a906124ad565b60006112778585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061166692505050565b60408051808201825260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b6020918201527f8e7e22a149a62d266f1366830ad13fadc3d0c42cdbb2dca110769fc88fb0ddbb6000908152600993909301905290205495945050505050565b60606112e98585611636565b151560011461130a5760405162461bcd60e51b815260040161046a906124ad565b6000821161134e5760405162461bcd60e51b815260206004820152601160248201527031b7bab73a1034b99034b73b30b634b21760791b604482015260640161046a565b600061135a8686611666565b9050600080846001600160401b0381111561137757611377611f9a565b6040519080825280602002602001820160405280156113aa57816020015b60608152602001906001900390816113955790505b509050855b6113b98688612515565b811015610e9b5760006113fd6109836113d1846116e3565b60408051808201909152600f81526e32afb932bb34b2bb9d34b73232bc1d60891b602082015290611690565b60008181526008870160205260408120549192505060006114458c836040518060400160405280600e81526020016d0e4caecd2caee88c2e8c290c2e6d60931b815250611818565b90508060008151811061145a5761145a612434565b602002602001015185878151811061147457611474612434565b6020026020010181905250858061148a9061252d565b965050505050808061149b9061252d565b9150506113af565b6114ad8686611636565b156114ca5760405162461bcd60e51b815260040161046a906124ad565b6114d7868686868661187c565b60006114e38787611666565b905060005b82518163ffffffff16101561152b57611518610cc6610983858463ffffffff168151811061094a5761094a612434565b508061152381612489565b9150506114e8565b5050505050505050565b806040516115439190612418565b6040518091039020826040516115599190612418565b6040519081900381209033907fa2e1d286e25c6fce64acccdfd7a54d53cce2f617ddff648ab1dbb3458ccdd95b90600090a45050565b600061159b8383611636565b15156001146115bc5760405162461bcd60e51b815260040161046a9061244a565b60006115c88484611666565b600401546001600160a01b0316949350505050565b6115e782826105eb565b61047d576115f481611a2c565b6115ff836020611a3e565b604051602001611610929190612570565b60408051601f198184030181529082905262461bcd60e51b825261046a916004016125e5565b6000826001018260405161164a9190612418565b908152604051908190036020019020600b015415159392505050565b6000826001018260405161167a9190612418565b9081526020016040518091039020905092915050565b606082826040516020016116a59291906125f8565b604051602081830303815290604052905092915050565b600082815260208481526040822083516116d892850190611e10565b506001949350505050565b606061037d826116f284611bd9565b600101611c43565b600082815260028401602052604090206008015460609061172d5760405162461bcd60e51b815260040161046a9061261e565b815160208084019190912060008581526002808801909352604090206106259201905b600081815260208390526040902080546060919061176d906124da565b80601f0160208091040260200160405190810160405280929190818152602001828054611799906124da565b80156117e65780601f106117bb576101008083540402835291602001916117e6565b820191906000526020600020905b8154815290600101906020018083116117c957829003601f168201915b5050505050905092915050565b6000815183511480156103f75750508051602091820120825192909101919091201490565b600082815260028401602052604090206008015460609061184b5760405162461bcd60e51b815260040161046a9061261e565b6106258280519060200120856002016000868152602001908152602001600020600101611d2c90919063ffffffff16565b846001018460405161188e9190612418565b9081526020016040518091039020600b01546000146118ef5760405162461bcd60e51b815260206004820152601f60248201527f5573657253746f726167653a2062696420616c72656164792065786973747300604482015260640161046a565b6001600160a01b03811660009081526020869052604090208054611912906124da565b1590506119715760405162461bcd60e51b815260206004820152602760248201527f45766964656e636553746f726167653a206163636f756e7420616c72656164796044820152662065786973747360c81b606482015260840161046a565b600085600101856040516119859190612418565b90815260200160405180910390209050848160000190805190602001906119ad929190611e10565b5083516119c39060018301906020870190611e10565b5082516119d99060028301906020860190611e10565b506000600382018190556004820180546001600160a01b0319166001600160a01b03851690811790915542600b8401558152602087815260409091208651611a2392880190611e10565b50505050505050565b606061037d6001600160a01b03831660145b60606000611a4d836002612662565b611a58906002612515565b6001600160401b03811115611a6f57611a6f611f9a565b6040519080825280601f01601f191660200182016040528015611a99576020820181803683370190505b509050600360fc1b81600081518110611ab457611ab4612434565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611ae357611ae3612434565b60200101906001600160f81b031916908160001a9053506000611b07846002612662565b611b12906001612515565b90505b6001811115611b8a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b4657611b46612434565b1a60f81b828281518110611b5c57611b5c612434565b60200101906001600160f81b031916908160001a90535060049490941c93611b8381612681565b9050611b15565b5083156103f75760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161046a565b600080608083901c15611bf15760809290921c916010015b604083901c15611c065760409290921c916008015b602083901c15611c1b5760209290921c916004015b601083901c15611c305760109290921c916002015b600883901c1561037d5760010192915050565b6060826000611c53846002612662565b6001600160401b03811115611c6a57611c6a611f9a565b6040519080825280601f01601f191660200182016040528015611c94576020820181803683370190505b5090506000611ca4856002612662565b90505b8015611d23576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110611cd557611cd5612434565b1a60f81b82611ce5600184612698565b81518110611cf557611cf5612434565b60200101906001600160f81b031916908160001a90535060049290921c91611d1c81612681565b9050611ca7565b50949350505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015611e04578382906000526020600020018054611d77906124da565b80601f0160208091040260200160405190810160405280929190818152602001828054611da3906124da565b8015611df05780601f10611dc557610100808354040283529160200191611df0565b820191906000526020600020905b815481529060010190602001808311611dd357829003601f168201915b505050505081526020019060010190611d58565b50505050905092915050565b828054611e1c906124da565b90600052602060002090601f016020900481019282611e3e5760008555611e84565b82601f10611e5757805160ff1916838001178555611e84565b82800160010185558215611e84579182015b82811115611e84578251825591602001919060010190611e69565b50611e90929150611e94565b5090565b5b80821115611e905760008155600101611e95565b600060208284031215611ebb57600080fd5b81356001600160e01b0319811681146103f757600080fd5b60005b83811015611eee578181015183820152602001611ed6565b83811115611efd576000848401525b50505050565b60008151808452611f1b816020860160208601611ed3565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015611f7a57601f19868403018952611f68838351611f03565b98840198925090830190600101611f4c565b5090979650505050505050565b6020815260006103f76020830184611f2f565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611fd857611fd8611f9a565b60405291905056", + "5b600082601f830112611ff157600080fd5b81356001600160401b0381111561200a5761200a611f9a565b61201d601f8201601f1916602001611fb0565b81815284602083860101111561203257600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261206057600080fd5b813560206001600160401b038083111561207c5761207c611f9a565b8260051b61208b838201611fb0565b93845285810183019383810190888611156120a557600080fd5b84880192505b858310156120e1578235848111156120c35760008081fd5b6120d18a87838c0101611fe0565b83525091840191908401906120ab565b98975050505050505050565b6000806040838503121561210057600080fd5b82356001600160401b038082111561211757600080fd5b61212386838701611fe0565b9350602085013591508082111561213957600080fd5b506121468582860161204f565b9150509250929050565b60006020828403121561216257600080fd5b5035919050565b80356001600160a01b03811681146105a557600080fd5b6000806040838503121561219357600080fd5b823591506121a360208401612169565b90509250929050565b600080602083850312156121bf57600080fd5b82356001600160401b03808211156121d657600080fd5b818501915085601f8301126121ea57600080fd5b8135818111156121f957600080fd5b86602082850101111561220b57600080fd5b60209290920196919550909350505050565b6000806040838503121561223057600080fd5b82356001600160401b0381111561224657600080fd5b61225285828601611fe0565b9250506121a360208401612169565b60006020828403121561227357600080fd5b81356001600160401b0381111561228957600080fd5b61062584828501611fe0565b6000602082840312156122a757600080fd5b6103f782612169565b82151581526040602082015260006106256040830184611f03565b6000806000606084860312156122e057600080fd5b83356001600160401b038111156122f657600080fd5b61230286828701611fe0565b9660208601359650604090950135949350505050565b60608152600061232b6060830186611f03565b828103602084015261233d8186611f03565b905082810360408401526123518185611f2f565b9695505050505050565b600080600080600060a0868803121561237357600080fd5b85356001600160401b038082111561238a57600080fd5b61239689838a01611fe0565b965060208801359150808211156123ac57600080fd5b6123b889838a01611fe0565b955060408801359150808211156123ce57600080fd5b6123da89838a01611fe0565b94506123e860608901612169565b935060808801359150808211156123fe57600080fd5b5061240b8882890161204f565b9150509295509295909350565b6000825161242a818460208701611ed3565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6020808252600f908201526e2ab9b2b9103737ba1032bc34b9ba1760891b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818114156124a3576124a3612473565b6001019392505050565b6020808252601390820152722ab9b2b91030b63932b0b23c9032bc34b9ba1760691b604082015260600190565b600181811c908216806124ee57607f821691505b6020821081141561250f57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561252857612528612473565b500190565b600060001982141561254157612541612473565b5060010190565b600063ffffffff80831681851680830382111561256757612567612473565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516125a8816017850160208801611ed3565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516125d9816028840160208801611ed3565b01602801949350505050565b6020815260006103f76020830184611f03565b6000835161260a818460208801611ed3565b835190830190612567818360208801611ed3565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b600081600019048311821515161561267c5761267c612473565b500290565b60008161269057612690612473565b506000190190565b6000828210156126aa576126aa612473565b50039056fe22f59c2f02edbae5c421247f029fe3112c5a85f70b4a48f5d93b22ada9ea772ea2646970667358221220c14c3f1933f389f27255a12a7c39402cac5e7fc4bd6868894e836050b8e8944264736f6c634300080b0033" }; public static final String BINARY = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", BINARY_ARRAY); public static final String[] SM_BINARY_ARRAY = { - "608060405234801561001057600080fd5b50612555806100206000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063b4385765116100ad578063de92755c11610071578063de92755c1461027b578063df857c3f1461028e578063ea7eb798146102a1578063fbd3f0bf146102b4578063fd09e7d6146102d757600080fd5b8063b43857651461020a578063b5aed06f1461021d578063b6773ad814610240578063b70b2fbc14610255578063d9ad467b1461026857600080fd5b80635e84b511116100f45780635e84b511146101a75780636af9402e146101c957806371f7025c146101dc5780638766c78c146101e4578063a4ff64c2146101f757600080fd5b806306decf4c1461013157806317d66dc8146101465780631b3240b814610159578063470d7c57146101745780635472010b14610194575b600080fd5b61014461013f366004611e85565b6102ea565b005b610144610154366004611eff565b61031c565b610161600081565b6040519081526020015b60405180910390f35b610187610182366004611f2b565b6103a0565b60405161016b9190612029565b6101446101a2366004611eff565b6103b7565b6101ba6101b536600461203c565b6103dc565b60405161016b93929190612070565b6101876101d7366004611f2b565b6103f8565b610187610407565b6101446101f2366004611e85565b610416565b61014461020536600461203c565b61043a565b6101616102183660046120b3565b610503565b61023061022b36600461203c565b610518565b604051901515815260200161016b565b61016160008051602061250083398151915281565b610144610263366004612124565b6105a5565b610144610276366004612168565b610647565b610230610289366004611eff565b610680565b61016161029c3660046120b3565b6106ab565b6102306102af366004612225565b6106b9565b6101616102c236600461224f565b60009081526065602052604090206001015490565b6101446102e5366004611eff565b6106ee565b60008051602061250083398151915261030281610713565b61030e60c98484610720565b61031783610812565b505050565b6001600160a01b038116331461039257604051636381e58960e11b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61039c8282610855565b5050565b60606103af60c98585856108bc565b949350505050565b6000828152606560205260409020600101546103d281610713565b6103178383610a90565b606080806103eb60c985610b16565b9250925092509193909250565b60606103af60c9858585610e42565b6060610411610fdf565b905090565b60008051602061250083398151915261042e81610713565b61030e60c98484611116565b600061044581610713565b60006001600160a01b03166097836040516104609190612268565b908152604051908190036020019020546001600160a01b03161461039c576104be6000805160206125008339815191526097846040516104a09190612268565b908152604051908190036020019020546001600160a01b0316610855565b60006097836040516104d09190612268565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b600061051160c984846111b0565b9392505050565b6000806001600160a01b03166097836040516105349190612268565b908152604051908190036020019020546001600160a01b031614610598576105926000805160206125008339815191526097846040516105749190612268565b908152604051908190036020019020546001600160a01b0316610680565b92915050565b506000919050565b919050565b60006105b081610713565b60006001600160a01b03166097846040516105cb9190612268565b908152604051908190036020019020546001600160a01b031614156103175761060260008051602061250083398151915283610a90565b816097846040516106139190612268565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b60008051602061250083398151915261065f81610713565b61066e60c98787878787611263565b61067886866112f6565b505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061051160c98484611350565b60006001600160e01b03198216634df6077b60e11b14806105925750631d4fd6f360e31b6001600160e01b0319831614610592565b60008281526065602052604090206001015461070981610713565b6103178383610855565b61071d813361145c565b50565b61072a83836114b6565b151560011461074c57604051636381e58960e11b815260040161038990612284565b600061075884846114e6565b905060005b82518163ffffffff16101561080b576107f86107d16107c6858463ffffffff168151811061078d5761078d6122ad565b60200260200101516040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b81525061151090919063ffffffff16565b805160209091012090565b604080518082019091526005815264195e1a5cdd60da1b602082015260068501919061153c565b5080610803816122d9565b91505061075d565b5050505050565b806040516108209190612268565b6040519081900381209033907f9268f66168b4bc4859411872e57bf474a6faf0800ac24c0ab63969775f07013590600090a350565b61085f8282610680565b1561039c5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917fddf24a0d777ab37f0cd0acf6e2b0a75570d42c6500405e008f7f9a61836cf2a39190a45050565b60606108c885856114b6565b15156001146108ea57604051636381e58960e11b8152600401610389906122fd565b6000821161092f57604051636381e58960e11b815260206004820152601160248201527031b7bab73a1034b99034b73b30b634b21760791b6044820152606401610389565b600061093b86866114e6565b9050600080846001600160401b0381111561095857610958611d32565b60405190808252806020026020018201604052801561098b57816020015b60608152602001906001900390816109765790505b509050855b61099a868861232a565b811015610a845760006109de6107c66109b284611563565b60408051808201909152600f81526e32afb932bb34b2bb9d34b73232bc1d60891b602082015290611510565b6000818152600887016020526040812054919250506000610a268c836040518060400160405280600e81526020016d0e4caecd2caee88c2e8c290c2e6d60931b81525061157a565b905080600081518110610a3b57610a3b6122ad565b6020026020010151858781518110610a5557610a556122ad565b60200260200101819052508580610a6b90612342565b9650505050508080610a7c90612342565b915050610990565b50979650505050505050565b610a9a8282610680565b61039c5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610ad23390565b6001600160a01b0316816001600160a01b0316837f3a8c19c5eddb5ca7fdd091f00e2b3978b86344c928af4d2d7f6733572cc06b4c60405160405180910390a45050565b6060806060610b2585856114b6565b1515600114610b4757604051636381e58960e11b815260040161038990612284565b6000610b5386866114e6565b9050806001018054610b649061235d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b909061235d565b8015610bdd5780601f10610bb257610100808354040283529160200191610bdd565b820191906000526020600020905b815481529060010190602001808311610bc057829003601f168201915b50505050509350806002018054610bf39061235d565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1f9061235d565b8015610c6c5780601f10610c4157610100808354040283529160200191610c6c565b820191906000526020600020905b815481529060010190602001808311610c4f57829003601f168201915b505050505092506000610c7d610fdf565b90506000805b82518163ffffffff161015610d0957610ce460405180604001604052806005815260200164195e1a5cdd60da1b815250610cde610cd46107c6878663ffffffff168151811061078d5761078d6122ad565b60068801906115df565b90611682565b15610cf757610cf4826001612398565b91505b80610d01816122d9565b915050610c83565b5063ffffffff811615610e38576000808263ffffffff166001600160401b03811115610d3757610d37611d32565b604051908082528060200260200182016040528015610d6a57816020015b6060815260200190600190039081610d555790505b50905060005b84518163ffffffff161015610e3357610dcb60405180604001604052806005815260200164195e1a5cdd60da1b815250610cde610dc16107c6898663ffffffff168151811061078d5761078d6122ad565b60068a01906115df565b15610e2157848163ffffffff1681518110610de857610de86122ad565b6020026020010151828463ffffffff1681518110610e0857610e086122ad565b6020908102919091010152610e1e836001612398565b92505b80610e2b816122d9565b915050610d70565b509450505b5050509250925092565b6060610e4e85856114b6565b1515600114610e7057604051636381e58960e11b8152600401610389906122fd565b60008211610eb557604051636381e58960e11b815260206004820152601160248201527031b7bab73a1034b99034b73b30b634b21760791b6044820152606401610389565b6000610ec186866114e6565b9050600080846001600160401b03811115610ede57610ede611d32565b604051908082528060200260200182016040528015610f1157816020015b6060815260200190600190039081610efc5790505b509050855b610f20868861232a565b811015610a84576000610f636107c6610f3884611563565b60408051808201909152600e81526d32afb934b3b43a1d34b73232bc1d60911b602082015290611510565b600081815260088701602052604081205491925050610f9f8b82604051806040016040528060048152602001637564726960e01b8152506116a7565b848681518110610fb157610fb16122ad565b60200260200101819052508480610fc790612342565b95505050508080610fd790612342565b915050610f16565b", - "60408051600480825260a0820190925260609160009190816020015b6060815260200190600190039081610ffb5790505090506040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b81525081600081518110611049576110496122ad565b6020026020010181905250604051806040016040528060088152602001673932bb34b2bbb2b960c11b81525081600181518110611088576110886122ad565b602002602001018190525060405180604001604052806008815260200167726567697374727960c01b815250816002815181106110c7576110c76122ad565b602002602001018190525060405180604001604052806008815260200167706c6174666f726d60c01b81525081600381518110611106576111066122ad565b6020908102919091010152919050565b61112083836114b6565b151560011461114257604051636381e58960e11b815260040161038990612284565b600061114e84846114e6565b905060005b82518163ffffffff16101561080b5761119d6111836107c6858463ffffffff168151811061078d5761078d6122ad565b60408051602081019091526000815260068501919061153c565b50806111a8816122d9565b915050611153565b60006111f28484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114b692505050565b151560011461121457604051636381e58960e11b8152600401610389906122fd565b60006112568585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114e692505050565b6003015495945050505050565b61126d86866114b6565b1561128b57604051636381e58960e11b8152600401610389906122fd565b6112988686868686611702565b60006112a487876114e6565b905060005b82518163ffffffff1610156112ec576112d96107d16107c6858463ffffffff168151811061078d5761078d6122ad565b50806112e4816122d9565b9150506112a9565b5050505050505050565b806040516113049190612268565b60405180910390208260405161131a9190612268565b6040519081900381209033907f9d6662ba6d5a95ec0e1994138d55966397bf87303de34c157ed3c818715f213390600090a45050565b60006113928484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114b692505050565b15156001146113b457604051636381e58960e11b8152600401610389906122fd565b60006113f68585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114e692505050565b60408051808201825260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b6020918201527fc87fd76dcb254b470588f43d2dd39ad8a7f86e49142e501a49eaca8ce0f863dc6000908152600993909301905290205495945050505050565b6114668282610680565b61039c57611473816118b4565b61147e8360206118c6565b60405160200161148f9291906123c0565b60408051601f1981840301815290829052636381e58960e11b825261038991600401612435565b600082600101826040516114ca9190612268565b908152604051908190036020019020600b015415159392505050565b600082600101826040516114fa9190612268565b9081526020016040518091039020905092915050565b60608282604051602001611525929190612448565b604051602081830303815290604052905092915050565b6000828152602084815260408220835161155892850190611c99565b506001949350505050565b60606105928261157284611a62565b600101611acc565b60008281526002840160205260409020600801546060906115ae57604051636381e58960e11b81526004016103899061246e565b6103af8280519060200120856002016000868152602001908152602001600020600101611bb590919063ffffffff16565b60008181526020839052604090208054606091906115fc9061235d565b80601f01602080910402602001604051908101604052809291908181526020018280546116289061235d565b80156116755780601f1061164a57610100808354040283529160200191611675565b820191906000526020600020905b81548152906001019060200180831161165857829003601f168201915b5050505050905092915050565b6000815183511480156105115750508051602091820120825192909101919091201490565b60008281526002840160205260409020600801546060906116db57604051636381e58960e11b81526004016103899061246e565b815160208084019190912060008581526002808801909352604090206103af9201906115df565b84600101846040516117149190612268565b9081526020016040518091039020600b015460001461177657604051636381e58960e11b815260206004820152601f60248201527f5573657253746f726167653a2062696420616c726561647920657869737473006044820152606401610389565b6001600160a01b038116600090815260208690526040902080546117999061235d565b1590506117f957604051636381e58960e11b815260206004820152602760248201527f45766964656e636553746f726167653a206163636f756e7420616c72656164796044820152662065786973747360c81b6064820152608401610389565b6000856001018560405161180d9190612268565b9081526020016040518091039020905084816000019080519060200190611835929190611c99565b50835161184b9060018301906020870190611c99565b5082516118619060028301906020860190611c99565b506000600382018190556004820180546001600160a01b0319166001600160a01b03851690811790915542600b84015581526020878152604090912086516118ab92880190611c99565b50505050505050565b60606105926001600160a01b03831660145b606060006118d58360026124b2565b6118e090600261232a565b6001600160401b038111156118f7576118f7611d32565b6040519080825280601f01601f191660200182016040528015611921576020820181803683370190505b509050600360fc1b8160008151811061193c5761193c6122ad565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061196b5761196b6122ad565b60200101906001600160f81b031916908160001a905350600061198f8460026124b2565b61199a90600161232a565b90505b6001811115611a12576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106119ce576119ce6122ad565b1a60f81b8282815181106119e4576119e46122ad565b60200101906001600160f81b031916908160001a90535060049490941c93611a0b816124d1565b905061199d565b50831561051157604051636381e58960e11b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610389565b600080608083901c15611a7a5760809290921c916010015b604083901c15611a8f5760409290921c916008015b602083901c15611aa45760209290921c916004015b601083901c15611ab95760109290921c916002015b600883901c156105925760010192915050565b6060826000611adc8460026124b2565b6001600160401b03811115611af357611af3611d32565b6040519080825280601f01601f191660200182016040528015611b1d576020820181803683370190505b5090506000611b2d8560026124b2565b90505b8015611bac576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110611b5e57611b5e6122ad565b1a60f81b82611b6e6001846124e8565b81518110611b7e57611b7e6122ad565b60200101906001600160f81b031916908160001a90535060049290921c91611ba5816124d1565b9050611b30565b50949350505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015611c8d578382906000526020600020018054611c009061235d565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2c9061235d565b8015611c795780601f10611c4e57610100808354040283529160200191611c79565b820191906000526020600020905b815481529060010190602001808311611c5c57829003601f168201915b505050505081526020019060010190611be1565b50505050905092915050565b828054611ca59061235d565b90600052602060002090601f016020900481019282611cc75760008555611d0d565b82601f10611ce057805160ff1916838001178555611d0d565b82800160010185558215611d0d579182015b82811115611d0d578251825591602001919060010190611cf2565b50611d19929150611d1d565b5090565b5b80821115611d195760008155600101611d1e565b63b95aa35560e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611d7057611d70611d32565b604052919050565b600082601f830112611d8957600080fd5b81356001600160401b03811115611da257611da2611d32565b611db5601f8201601f1916602001611d48565b818152846020838601011115611dca57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112611df857600080fd5b813560206001600160401b0380831115611e1457611e14611d32565b8260051b611e23838201611d48565b9384528581018301938381019088861115611e3d57600080fd5b84880192505b85831015611e7957823584811115611e5b5760008081fd5b611e698a87838c0101611d78565b8352509184019190840190611e43565b98975050505050505050565b60008060408385031215611e9857600080fd5b82356001600160401b0380821115611eaf57600080fd5b611ebb86838701611d78565b93506020850135915080821115611ed157600080fd5b50611ede85828601611de7565b9150509250929050565b80356001600160a01b03811681146105a057600080fd5b60008060408385031215611f1257600080fd5b82359150611f2260208401611ee8565b90509250929050565b600080600060608486031215611f4057600080fd5b83356001600160401b03811115611f5657600080fd5b611f6286828701611d78565b9660208601359650604090950135949350505050565b60005b83811015611f93578181015183820152602001611f7b565b83811115611fa2576000848401525b50505050565b60008151808452611fc0816020860160208601611f78565b601f01601f19169290920160200192915050565b6000815180845260208085", - "01808196508360051b8101915082860160005b8581101561201c57828403895261200a848351611fa8565b98850198935090840190600101611ff2565b5091979650505050505050565b6020815260006105116020830184611fd4565b60006020828403121561204e57600080fd5b81356001600160401b0381111561206457600080fd5b6103af84828501611d78565b6060815260006120836060830186611fa8565b82810360208401526120958186611fa8565b905082810360408401526120a98185611fd4565b9695505050505050565b600080602083850312156120c657600080fd5b82356001600160401b03808211156120dd57600080fd5b818501915085601f8301126120f157600080fd5b81358181111561210057600080fd5b86602082850101111561211257600080fd5b60209290920196919550909350505050565b6000806040838503121561213757600080fd5b82356001600160401b0381111561214d57600080fd5b61215985828601611d78565b925050611f2260208401611ee8565b600080600080600060a0868803121561218057600080fd5b85356001600160401b038082111561219757600080fd5b6121a389838a01611d78565b965060208801359150808211156121b957600080fd5b6121c589838a01611d78565b955060408801359150808211156121db57600080fd5b6121e789838a01611d78565b94506121f560608901611ee8565b9350608088013591508082111561220b57600080fd5b5061221888828901611de7565b9150509295509295909350565b60006020828403121561223757600080fd5b81356001600160e01b03198116811461051157600080fd5b60006020828403121561226157600080fd5b5035919050565b6000825161227a818460208701611f78565b9190910192915050565b6020808252600f908201526e2ab9b2b9103737ba1032bc34b9ba1760891b604082015260600190565b63b95aa35560e01b600052603260045260246000fd5b63b95aa35560e01b600052601160045260246000fd5b600063ffffffff808316818114156122f3576122f36122c3565b6001019392505050565b6020808252601390820152722ab9b2b91030b63932b0b23c9032bc34b9ba1760691b604082015260600190565b6000821982111561233d5761233d6122c3565b500190565b6000600019821415612356576123566122c3565b5060010190565b600181811c9082168061237157607f821691505b602082108114156123925763b95aa35560e01b600052602260045260246000fd5b50919050565b600063ffffffff8083168185168083038211156123b7576123b76122c3565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123f8816017850160208801611f78565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612429816028840160208801611f78565b01602801949350505050565b6020815260006105116020830184611fa8565b6000835161245a818460208801611f78565b8351908301906123b7818360208801611f78565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b60008160001904831182151516156124cc576124cc6122c3565b500290565b6000816124e0576124e06122c3565b506000190190565b6000828210156124fa576124fa6122c3565b50039056fecda5c054d055f48a2866e1a28d72f8145e422f1db1872bc4c9fe2888702c9f8da2646970667358221220d0c55334c07512eded0b2a4f966ce2c72d4f2b26bbeb344d0b7e509e67c2756664736f6c634300080b0033" + "608060405234801561001057600080fd5b5061271f806100206000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063b4385765116100b8578063de92755c1161007c578063de92755c146102b2578063df857c3f146102c5578063ea7eb798146102d8578063fbd3f0bf146102eb578063fc864fbb1461030e578063fd09e7d61461033957600080fd5b8063b438576514610241578063b5aed06f14610254578063b6773ad814610277578063b70b2fbc1461028c578063d9ad467b1461029f57600080fd5b80635472010b1161010a5780635472010b146101cb5780635e84b511146101de5780636af9402e1461020057806371f7025c146102135780638766c78c1461021b578063a4ff64c21461022e57600080fd5b806306decf4c1461014757806317d66dc81461015c5780631b3240b81461016f578063470d7c571461018a578063520bdf0a146101aa575b600080fd5b61015a610155366004612016565b61034c565b005b61015a61016a366004612090565b61037e565b610177600081565b6040519081526020015b60405180910390f35b61019d6101983660046120bc565b610402565b60405161018191906121bd565b6101bd6101b83660046121d0565b610419565b6040516101819291906121eb565b61015a6101d9366004612090565b610436565b6101f16101ec366004612206565b61045b565b6040516101819392919061223a565b61019d61020e3660046120bc565b610477565b61019d610486565b61015a610229366004612016565b610495565b61015a61023c366004612206565b6104b9565b61017761024f36600461227d565b610582565b610267610262366004612206565b610597565b6040519015158152602001610181565b6101776000805160206126ca83398151915281565b61015a61029a3660046122ee565b610624565b61015a6102ad366004612332565b6106c6565b6102676102c0366004612090565b6106ff565b6101776102d336600461227d565b61072a565b6102676102e63660046123ef565b610738565b6101776102f9366004612419565b60009081526065602052604090206001015490565b61032161031c366004612206565b61076d565b6040516001600160a01b039091168152602001610181565b61015a610347366004612090565b61077a565b6000805160206126ca8339815191526103648161079f565b61037060c984846107ac565b6103798361089e565b505050565b6001600160a01b03811633146103f457604051636381e58960e11b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6103fe82826108e1565b5050565b606061041160c9858585610948565b949350505050565b60006060818061042a60c986610b1c565b90969095509350505050565b6000828152606560205260409020600101546104518161079f565b6103798383610bd2565b6060808061046a60c985610c58565b9250925092509193909250565b606061041160c9858585610f84565b6060610490611121565b905090565b6000805160206126ca8339815191526104ad8161079f565b61037060c98484611258565b60006104c48161079f565b60006001600160a01b03166097836040516104df9190612432565b908152604051908190036020019020546001600160a01b0316146103fe5761053d6000805160206126ca83398151915260978460405161051f9190612432565b908152604051908190036020019020546001600160a01b03166108e1565b600060978360405161054f9190612432565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b600061059060c984846112f2565b9392505050565b6000806001600160a01b03166097836040516105b39190612432565b908152604051908190036020019020546001600160a01b031614610617576106116000805160206126ca8339815191526097846040516105f39190612432565b908152604051908190036020019020546001600160a01b03166106ff565b92915050565b506000919050565b919050565b600061062f8161079f565b60006001600160a01b031660978460405161064a9190612432565b908152604051908190036020019020546001600160a01b03161415610379576106816000805160206126ca83398151915283610bd2565b816097846040516106929190612432565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b6000805160206126ca8339815191526106de8161079f565b6106ed60c987878787876113a5565b6106f78686611438565b505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061059060c98484611492565b60006001600160e01b03198216634df6077b60e11b14806106115750631d4fd6f360e31b6001600160e01b0319831614610611565b600061061160c98361159e565b6000828152606560205260409020600101546107958161079f565b61037983836108e1565b6107a981336115ed565b50565b6107b68383611647565b15156001146107d857604051636381e58960e11b81526004016103eb9061244e565b60006107e48484611677565b905060005b82518163ffffffff1610156108975761088461085d610852858463ffffffff168151811061081957610819612477565b60200260200101516040518060400160405280600a8152602001693ab9b2b92fb937b6329d60b11b8152506116a190919063ffffffff16565b805160209091012090565b604080518082019091526005815264195e1a5cdd60da1b60208201526006850191906116cd565b508061088f816124a3565b9150506107e9565b5050505050565b806040516108ac9190612432565b6040519081900381209033907f9268f66168b4bc4859411872e57bf474a6faf0800ac24c0ab63969775f07013590600090a350565b6108eb82826106ff565b156103fe5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917fddf24a0d777ab37f0cd0acf6e2b0a75570d42c6500405e008f7f9a61836cf2a39190a45050565b60606109548585611647565b151560011461097657604051636381e58960e11b81526004016103eb906124c7565b600082116109bb57604051636381e58960e11b815260206004820152601160248201527031b7bab73a1034b99034b73b30b634b21760791b60448201526064016103eb565b60006109c78686611677565b9050600080846001600160401b038111156109e4576109e4611ec3565b604051908082528060200260200182016040528015610a1757816020015b6060815260200190600190039081610a025790505b509050855b610a2686886124f4565b811015610b10576000610a6a610852610a3e846116f4565b60408051808201909152600f81526e32afb932bb34b2bb9d34b73232bc1d60891b6020820152906116a1565b6000818152600887016020526040812054919250506000610ab28c836040518060400160405280600e81526020016d0e4caecd2caee88c2e8c290c2e6d60931b81525061170b565b905080600081518110610ac757610ac7612477565b6020026020010151858781518110610ae157610ae1612477565b60200260200101819052508580610af79061250c565b9650505050508080610b089061250c565b915050610a1c565b50979650505050505050565b6001600160a01b038116600090815260208390526040812080546060918391610b4490612527565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7090612527565b8015610bbd5780601f10610b9257610100808354040283529160200191610bbd565b820191906000526020600020905b815481529060010190602001808311610ba057829003601f168201915b50508351151599939850929650505050505050565b610bdc82826106ff565b6103fe5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610c143390565b6001600160a01b0316816001600160a01b0316837f3a8c19c5eddb5ca7fdd091f00e2b3978b86344c928af4d2d7f6733572cc06b4c60405160405180910390a45050565b6060806060610c678585611647565b1515600114610c8957604051636381e58960e11b81526004016103eb9061244e565b6000610c958686611677565b9050806001018054610ca690612527565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd290612527565b8015610d1f5780601f10610cf457610100808354040283529160200191610d1f565b820191906000526020600020905b815481529060010190602001808311610d0257829003601f168201915b50505050509350806002018054610d3590612527565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6190612527565b8015610dae5780601f10610d8357610100808354040283529160200191610dae565b820191906000526020600020905b815481529060010190602001808311610d9157829003601f168201915b505050505092506000610dbf611121565b90506000805b82518163ffffffff161015610e4b57610e2660405180604001604052806005815260200164195e1a5cdd60da1b815250610e20610e16610852878663ffffffff168151811061081957610819612477565b6006880190611770565b90611813565b15610e3957610e36826001612562565b91505b80610e43816124a3565b915050610dc5565b5063ffffffff811615610f7a576000808263ffffffff166001600160401b03811115610e7957610e79611ec3565b604051908082528060200260200182016040528015610eac57816020015b6060815260200190600190039081610e975790505b50905060005b84518163ffffffff161015610f7557610f0d60405180604001604052806005815260200164195e1a5cdd60da1b815250610e20610f03610852898663ffffffff168151811061081957610819612477565b60068a0190611770565b15610f6357848163ffffffff1681518110610f2a57610f2a612477565b6020026020010151828463ffffffff1681518110610f4a57610f4a612477565b6020908102919091010152610f60836001612562565b92505b80610f6d816124a3565b915050610eb2565b509450505b5050509250925092565b6060610f908585611647565b1515600114610fb257604051636381e58960e11b81526004016103eb906124c7565b60008211610ff757604051636381e58960e11b815260206004820152601160248201527031b7bab73a1034b990", + "34b73b30b634b21760791b60448201526064016103eb565b60006110038686611677565b9050600080846001600160401b0381111561102057611020611ec3565b60405190808252806020026020018201604052801561105357816020015b606081526020019060019003908161103e5790505b509050855b61106286886124f4565b811015610b105760006110a561085261107a846116f4565b60408051808201909152600e81526d32afb934b3b43a1d34b73232bc1d60911b6020820152906116a1565b6000818152600887016020526040812054919250506110e18b82604051806040016040528060048152602001637564726960e01b815250611838565b8486815181106110f3576110f3612477565b602002602001018190525084806111099061250c565b955050505080806111199061250c565b915050611058565b60408051600480825260a0820190925260609160009190816020015b606081526020019060019003908161113d5790505090506040518060400160405280600b81526020016a3230ba30afb437b63232b960a91b8152508160008151811061118b5761118b612477565b6020026020010181905250604051806040016040528060088152602001673932bb34b2bbb2b960c11b815250816001815181106111ca576111ca612477565b602002602001018190525060405180604001604052806008815260200167726567697374727960c01b8152508160028151811061120957611209612477565b602002602001018190525060405180604001604052806008815260200167706c6174666f726d60c01b8152508160038151811061124857611248612477565b6020908102919091010152919050565b6112628383611647565b151560011461128457604051636381e58960e11b81526004016103eb9061244e565b60006112908484611677565b905060005b82518163ffffffff161015610897576112df6112c5610852858463ffffffff168151811061081957610819612477565b6040805160208101909152600081526006850191906116cd565b50806112ea816124a3565b915050611295565b60006113348484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164792505050565b151560011461135657604051636381e58960e11b81526004016103eb906124c7565b60006113988585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061167792505050565b6003015495945050505050565b6113af8686611647565b156113cd57604051636381e58960e11b81526004016103eb906124c7565b6113da8686868686611893565b60006113e68787611677565b905060005b82518163ffffffff16101561142e5761141b61085d610852858463ffffffff168151811061081957610819612477565b5080611426816124a3565b9150506113eb565b5050505050505050565b806040516114469190612432565b60405180910390208260405161145c9190612432565b6040519081900381209033907f9d6662ba6d5a95ec0e1994138d55966397bf87303de34c157ed3c818715f213390600090a45050565b60006114d48484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164792505050565b15156001146114f657604051636381e58960e11b81526004016103eb906124c7565b60006115388585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061167792505050565b60408051808201825260158152741d5cd95c8e9c995d9a595dce995a590e98dbdd5b9d605a1b6020918201527fc87fd76dcb254b470588f43d2dd39ad8a7f86e49142e501a49eaca8ce0f863dc6000908152600993909301905290205495945050505050565b60006115aa8383611647565b15156001146115cc57604051636381e58960e11b81526004016103eb9061244e565b60006115d88484611677565b600401546001600160a01b0316949350505050565b6115f782826106ff565b6103fe5761160481611a45565b61160f836020611a57565b60405160200161162092919061258a565b60408051601f1981840301815290829052636381e58960e11b82526103eb916004016125ff565b6000826001018260405161165b9190612432565b908152604051908190036020019020600b015415159392505050565b6000826001018260405161168b9190612432565b9081526020016040518091039020905092915050565b606082826040516020016116b6929190612612565b604051602081830303815290604052905092915050565b600082815260208481526040822083516116e992850190611e2a565b506001949350505050565b60606106118261170384611bf3565b600101611c5d565b600082815260028401602052604090206008015460609061173f57604051636381e58960e11b81526004016103eb90612638565b6104118280519060200120856002016000868152602001908152602001600020600101611d4690919063ffffffff16565b600081815260208390526040902080546060919061178d90612527565b80601f01602080910402602001604051908101604052809291908181526020018280546117b990612527565b80156118065780601f106117db57610100808354040283529160200191611806565b820191906000526020600020905b8154815290600101906020018083116117e957829003601f168201915b5050505050905092915050565b6000815183511480156105905750508051602091820120825192909101919091201490565b600082815260028401602052604090206008015460609061186c57604051636381e58960e11b81526004016103eb90612638565b81516020808401919091206000858152600280880190935260409020610411920190611770565b84600101846040516118a59190612432565b9081526020016040518091039020600b015460001461190757604051636381e58960e11b815260206004820152601f60248201527f5573657253746f726167653a2062696420616c7265616479206578697374730060448201526064016103eb565b6001600160a01b0381166000908152602086905260409020805461192a90612527565b15905061198a57604051636381e58960e11b815260206004820152602760248201527f45766964656e636553746f726167653a206163636f756e7420616c72656164796044820152662065786973747360c81b60648201526084016103eb565b6000856001018560405161199e9190612432565b90815260200160405180910390209050848160000190805190602001906119c6929190611e2a565b5083516119dc9060018301906020870190611e2a565b5082516119f29060028301906020860190611e2a565b506000600382018190556004820180546001600160a01b0319166001600160a01b03851690811790915542600b8401558152602087815260409091208651611a3c92880190611e2a565b50505050505050565b60606106116001600160a01b03831660145b60606000611a6683600261267c565b611a719060026124f4565b6001600160401b03811115611a8857611a88611ec3565b6040519080825280601f01601f191660200182016040528015611ab2576020820181803683370190505b509050600360fc1b81600081518110611acd57611acd612477565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611afc57611afc612477565b60200101906001600160f81b031916908160001a9053506000611b2084600261267c565b611b2b9060016124f4565b90505b6001811115611ba3576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b5f57611b5f612477565b1a60f81b828281518110611b7557611b75612477565b60200101906001600160f81b031916908160001a90535060049490941c93611b9c8161269b565b9050611b2e565b50831561059057604051636381e58960e11b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016103eb565b600080608083901c15611c0b5760809290921c916010015b604083901c15611c205760409290921c916008015b602083901c15611c355760209290921c916004015b601083901c15611c4a5760109290921c916002015b600883901c156106115760010192915050565b6060826000611c6d84600261267c565b6001600160401b03811115611c8457611c84611ec3565b6040519080825280601f01601f191660200182016040528015611cae576020820181803683370190505b5090506000611cbe85600261267c565b90505b8015611d3d576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110611cef57611cef612477565b1a60f81b82611cff6001846126b2565b81518110611d0f57611d0f612477565b60200101906001600160f81b031916908160001a90535060049290921c91611d368161269b565b9050611cc1565b50949350505050565b600081815260208381526040808320805482518185028101850190935280835260609492939192909184015b82821015611e1e578382906000526020600020018054611d9190612527565b80601f0160208091040260200160405190810160405280929190818152602001828054611dbd90612527565b8015611e0a5780601f10611ddf57610100808354040283529160200191611e0a565b820191906000526020600020905b815481529060010190602001808311611ded57829003601f168201915b505050505081526020019060010190611d72565b50505050905092915050565b828054611e3690612527565b90600052602060002090601f016020900481019282611e585760008555611e9e565b82601f10611e7157805160ff1916838001178555611e9e565b82800160010185558215611e9e579182015b82811115611e9e578251825591602001919060010190611e83565b50611eaa929150611eae565b5090565b5b80821115611eaa5760008155600101611eaf565b63b95aa35560e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611f0157611f01611ec3565b604052919050565b600082601f830112611f1a57600080fd5b81356001600160401b03811115611f3357611f33611ec3565b611f46601f8201601f1916602001611ed9565b818152846020838601011115611f5b57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112611f8957600080fd5b813560206001600160401b0380831115611fa557611fa5611ec3565b8260051b611fb4838201611ed9565b9384528581018301938381019088861115611fce57600080fd5b84880192505b8583101561200a57823584", + "811115611fec5760008081fd5b611ffa8a87838c0101611f09565b8352509184019190840190611fd4565b98975050505050505050565b6000806040838503121561202957600080fd5b82356001600160401b038082111561204057600080fd5b61204c86838701611f09565b9350602085013591508082111561206257600080fd5b5061206f85828601611f78565b9150509250929050565b80356001600160a01b038116811461061f57600080fd5b600080604083850312156120a357600080fd5b823591506120b360208401612079565b90509250929050565b6000806000606084860312156120d157600080fd5b83356001600160401b038111156120e757600080fd5b6120f386828701611f09565b9660208601359650604090950135949350505050565b60005b8381101561212457818101518382015260200161210c565b83811115612133576000848401525b50505050565b60008151808452612151816020860160208601612109565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b848110156121b057601f1986840301895261219e838351612139565b98840198925090830190600101612182565b5090979650505050505050565b6020815260006105906020830184612165565b6000602082840312156121e257600080fd5b61059082612079565b82151581526040602082015260006104116040830184612139565b60006020828403121561221857600080fd5b81356001600160401b0381111561222e57600080fd5b61041184828501611f09565b60608152600061224d6060830186612139565b828103602084015261225f8186612139565b905082810360408401526122738185612165565b9695505050505050565b6000806020838503121561229057600080fd5b82356001600160401b03808211156122a757600080fd5b818501915085601f8301126122bb57600080fd5b8135818111156122ca57600080fd5b8660208285010111156122dc57600080fd5b60209290920196919550909350505050565b6000806040838503121561230157600080fd5b82356001600160401b0381111561231757600080fd5b61232385828601611f09565b9250506120b360208401612079565b600080600080600060a0868803121561234a57600080fd5b85356001600160401b038082111561236157600080fd5b61236d89838a01611f09565b9650602088013591508082111561238357600080fd5b61238f89838a01611f09565b955060408801359150808211156123a557600080fd5b6123b189838a01611f09565b94506123bf60608901612079565b935060808801359150808211156123d557600080fd5b506123e288828901611f78565b9150509295509295909350565b60006020828403121561240157600080fd5b81356001600160e01b03198116811461059057600080fd5b60006020828403121561242b57600080fd5b5035919050565b60008251612444818460208701612109565b9190910192915050565b6020808252600f908201526e2ab9b2b9103737ba1032bc34b9ba1760891b604082015260600190565b63b95aa35560e01b600052603260045260246000fd5b63b95aa35560e01b600052601160045260246000fd5b600063ffffffff808316818114156124bd576124bd61248d565b6001019392505050565b6020808252601390820152722ab9b2b91030b63932b0b23c9032bc34b9ba1760691b604082015260600190565b600082198211156125075761250761248d565b500190565b60006000198214156125205761252061248d565b5060010190565b600181811c9082168061253b57607f821691505b6020821081141561255c5763b95aa35560e01b600052602260045260246000fd5b50919050565b600063ffffffff8083168185168083038211156125815761258161248d565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516125c2816017850160208801612109565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516125f3816028840160208801612109565b01602801949350505050565b6020815260006105906020830184612139565b60008351612624818460208801612109565b835190830190612581818360208801612109565b60208082526024908201527f45766964656e636553746f726167653a2045766964656e6365206e6f742065786040820152636973747360e01b606082015260800190565b60008160001904831182151516156126965761269661248d565b500290565b6000816126aa576126aa61248d565b506000190190565b6000828210156126c4576126c461248d565b50039056fecda5c054d055f48a2866e1a28d72f8145e422f1db1872bc4c9fe2888702c9f8da2646970667358221220946f3ea4ca496734adf9d02f15b5f790faa285168c0897c1e9aa6050cc3eaed064736f6c634300080b0033" }; public static final String SM_BINARY = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", SM_BINARY_ARRAY); public static final String[] ABI_ARRAY = { - "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"NewReviewEvidenceStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"NewRightEvidenceStored\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"}],\"name\":\"UserCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"UserRoleChanged\",\"type\":\"event\"},{\"conflictFields\":[{\"kind\":5}],\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"selector\":[2719481311,456278200],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":5}],\"inputs\":[],\"name\":\"USERMANAGE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"selector\":[852968231,3061267160],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"addUser\",\"outputs\":[],\"selector\":[3239424820,3652011643],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getDataCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dataCount\",\"type\":\"uint256\"}],\"selector\":[816278328,3023591269],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"getDataList\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"udriArray\",\"type\":\"string[]\"}],\"selector\":[2492434596,1794719790],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"selector\":[613063843,4224970943],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserReviewCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dataCount\",\"type\":\"uint256\"}],\"selector\":[2760116549,3750067263],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"getUserReviewList\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"hashArray\",\"type\":\"string[]\"}],\"selector\":[2884685932,1192066135],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserRoles\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"selector\":[2573946725,1585755409],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"selector\":[791671133,1416757515],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"grantUserManagePermission\",\"outputs\":[],\"selector\":[1037211317,3070963644],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"grantUserRoles\",\"outputs\":[],\"selector\":[2322354691,115265356],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"selector\":[2446411860,3734140252],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0},{\"kind\":4,\"slot\":101,\"value\":[34,245,156,47,2,237,186,229,196,33,36,127,2,159,227,17,44,90,133,247,11,74,72,245,217,59,34,173,169,234,119,46]}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"hasUserManageRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"selector\":[1290417574,3048132719],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":5}],\"inputs\":[],\"name\":\"queryUserRole\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"selector\":[289407936,1912013404],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0},{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"selector\":[911641278,399928776],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"selector\":[3578229791,4245284822],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"revokeUserManagePermission\",\"outputs\":[],\"selector\":[4233016450,2768200898],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"revokeUserRoles\",\"outputs\":[],\"selector\":[593762734,2271659916],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":5}],\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"selector\":[33540519,3934173080],\"stateMutability\":\"view\",\"type\":\"function\"}]" + "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"NewReviewEvidenceStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"NewRightEvidenceStored\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"}],\"name\":\"UserCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"UserRoleChanged\",\"type\":\"event\"},{\"conflictFields\":[{\"kind\":5}],\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"selector\":[2719481311,456278200],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":5}],\"inputs\":[],\"name\":\"USERMANAGE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"selector\":[852968231,3061267160],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"addUser\",\"outputs\":[],\"selector\":[3239424820,3652011643],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"checkAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isExist\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"selector\":[1771183142,1376509706],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getDataCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dataCount\",\"type\":\"uint256\"}],\"selector\":[816278328,3023591269],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"getDataList\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"udriArray\",\"type\":\"string[]\"}],\"selector\":[2492434596,1794719790],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"selector\":[613063843,4224970943],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"selector\":[4005145368,4236660667],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserReviewCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dataCount\",\"type\":\"uint256\"}],\"selector\":[2760116549,3750067263],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"getUserReviewList\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"hashArray\",\"type\":\"string[]\"}],\"selector\":[2884685932,1192066135],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserRoles\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"selector\":[2573946725,1585755409],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"selector\":[791671133,1416757515],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"grantUserManagePermission\",\"outputs\":[],\"selector\":[1037211317,3070963644],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"grantUserRoles\",\"outputs\":[],\"selector\":[2322354691,115265356],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"selector\":[2446411860,3734140252],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0},{\"kind\":4,\"slot\":101,\"value\":[34,245,156,47,2,237,186,229,196,33,36,127,2,159,227,17,44,90,133,247,11,74,72,245,217,59,34,173,169,234,119,46]}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"hasUserManageRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"selector\":[1290417574,3048132719],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":5}],\"inputs\":[],\"name\":\"queryUserRole\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"selector\":[289407936,1912013404],\"stateMutability\":\"view\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0},{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"selector\":[911641278,399928776],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":3,\"slot\":101,\"value\":[0]}],\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"selector\":[3578229791,4245284822],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"revokeUserManagePermission\",\"outputs\":[],\"selector\":[4233016450,2768200898],\"stateMutability\":\"nonpayable\",", + "\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0}],\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"revokeUserRoles\",\"outputs\":[],\"selector\":[593762734,2271659916],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"conflictFields\":[{\"kind\":5}],\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"selector\":[33540519,3934173080],\"stateMutability\":\"view\",\"type\":\"function\"}]" }; public static final String ABI = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", ABI_ARRAY); @@ -62,12 +63,16 @@ public class DREvidenceUserController extends Contract { public static final String FUNC_ADDUSER = "addUser"; + public static final String FUNC_CHECKACCOUNT = "checkAccount"; + public static final String FUNC_GETDATACOUNT = "getDataCount"; public static final String FUNC_GETDATALIST = "getDataList"; public static final String FUNC_GETROLEADMIN = "getRoleAdmin"; + public static final String FUNC_GETUSERACCOUNT = "getUserAccount"; + public static final String FUNC_GETUSERREVIEWCOUNT = "getUserReviewCount"; public static final String FUNC_GETUSERREVIEWLIST = "getUserReviewList"; @@ -415,6 +420,19 @@ public class DREvidenceUserController extends Contract { convertToNative((List) results.get(4).getValue())); } + public Tuple2 checkAccount(String account) throws ContractException { + final Function function = + new Function( + FUNC_CHECKACCOUNT, + Arrays.asList( + new org.fisco.bcos.sdk.v3.codec.datatypes.Address(account)), + Arrays.>asList( + new TypeReference() {}, new TypeReference() {})); + List results = executeCallWithMultipleValueReturn(function); + return new Tuple2( + (Boolean) results.get(0).getValue(), (String) results.get(1).getValue()); + } + public BigInteger getDataCount(String bid) throws ContractException { final Function function = new Function( @@ -450,6 +468,16 @@ public class DREvidenceUserController extends Contract { return executeCallWithSingleValueReturn(function, byte[].class); } + public String getUserAccount(String bid) throws ContractException { + final Function function = + new Function( + FUNC_GETUSERACCOUNT, + Arrays.asList( + new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(bid)), + Arrays.>asList(new TypeReference
() {})); + return executeCallWithSingleValueReturn(function, String.class); + } + public BigInteger getUserReviewCount(String bid) throws ContractException { final Function function = new Function( diff --git a/java/IDREvidence.java b/java/IDREvidence.java index a581b3b6da39a567abc20e8174ee2b49c62707ef..8176bf800c5ab784a0966c494fb303312a7ccb53 100644 --- a/java/IDREvidence.java +++ b/java/IDREvidence.java @@ -41,8 +41,8 @@ public class IDREvidence extends Contract { org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", SM_BINARY_ARRAY); public static final String[] ABI_ARRAY = { - "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataHash\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"name\":\"addDataRightEvidence\",\"outputs\":[],\"selector\":[2635209621,3623663505],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"reviewDataHash\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"name\":\"addReviewEvidence\",\"outputs\":[],\"selector\":[4024293368,766756406],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"addUser\",\"outputs\":[],\"selector\":[3239424820,3652011643],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"name\":\"appendVariableData\",\"outputs\":[],\"selector\":[2138450037,1301797456],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableAccessControl\",\"outputs\":[],\"selector\":[1980433629,2854924890],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableAccessControl\",\"outputs\":[],\"selector\":[922088542,1158894738],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"genDataRightEidViaUrdi\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"eid\",\"type\":\"string\"}],\"selector\":[4068645820,1528694934],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"reviewDataHash\",\"type\":\"string[]\"}],\"name\":\"genReviewEid\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"eid\",\"type\":\"string\"}],\"selector\":[2390601602,4131535128],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAccessControl\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"status\",\"type\":\"uint32\"}],\"selector\":[4229803393,1904329564],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"selector\":[3609374908,728140679],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getDataCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dataCount\",\"type\":\"uint256\"}],\"selector\":[816278328,3023591269],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"getDataList\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"udriArray\",\"type\":\"string[]\"}],\"selector\":[2492434596,1794719790],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDataRightCategory\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"fields\",\"type\":\"string[]\"}],\"selector\":[2324699571,3796759802],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"getDataRightEvidence\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataHashSM\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"dataHashSHA\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"},{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"}],\"selector\":[606765522,519044862],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"getDataRightEvidenceViaEid\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataHashSM\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"dataHashSHA\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"},{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"}],\"selector\":[2401931980,631971877],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"getReviewCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reviewCount\",\"type\":\"uint256\"}],\"selector\":[1485793629,1330250274],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"}],\"name\":\"getReviewCountOfReviewer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"selector\":[3868489521,2826438872],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eid\",\"type\":\"string\"}],\"name\":\"getReviewEvidenceViaEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"selector\":[2101214845,1635642682],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"}],\"name\":\"getSupportVariableDataFields\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"fileds\",\"type\":\"string[]\"}],\"selector\":[3869446330,376683502],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTextMaxLen\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"len\",\"type\":\"uint32\"}],\"selector\":[3460282540,1588090095],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"dataHash\",\"type\":\"string\"}],\"name\":\"getUdriByDatahash\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"selector\":[633708824,3726531728],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserDataRight\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"}],\"selector\":[1105228669,1195862205],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserRoles\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"selector\":[2573946725,1585755409],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"getVerifyEvidence\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"selector\":[1855339097,4061585395],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"getVerifyEvidenceOfReviewer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"selector\":[1591648918,3508812136],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getstrArrayMaxLen\",\"outpu", - "ts\":[{\"internalType\":\"uint32\",\"name\":\"len\",\"type\":\"uint32\"}],\"selector\":[905356897,1921885619],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"}],\"name\":\"grantUserDataRight\",\"outputs\":[],\"selector\":[3258251539,3358242835],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantUserManagePermission\",\"outputs\":[],\"selector\":[1037211317,3070963644],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"grantUserRoles\",\"outputs\":[],\"selector\":[2322354691,115265356],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"hasUserManageRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"selector\":[1290417574,3048132719],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"queryUserRole\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"selector\":[289407936,1912013404],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"revokeUserManagePermission\",\"outputs\":[],\"selector\":[4233016450,2768200898],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"revokeUserRoles\",\"outputs\":[],\"selector\":[593762734,2271659916],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"setChainName\",\"outputs\":[],\"selector\":[3234078498,3307895570],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"fields\",\"type\":\"string[]\"}],\"name\":\"setDataRightCategory\",\"outputs\":[],\"selector\":[2472945857,2087572871],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"fields\",\"type\":\"string[]\"}],\"name\":\"setDataRightSupportVariableDataFields\",\"outputs\":[],\"selector\":[1199116808,2135762870],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"len\",\"type\":\"uint32\"}],\"name\":\"setTextMaxLen\",\"outputs\":[],\"selector\":[1356933702,1285167137],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"len\",\"type\":\"uint32\"}],\"name\":\"setstrArrayMaxLen\",\"outputs\":[],\"selector\":[453424020,3279923519],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"}],\"name\":\"withdrawDataRight\",\"outputs\":[],\"selector\":[3445852971,3715655987],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"}],\"name\":\"withdrawReviewEvidence\",\"outputs\":[],\"selector\":[932021754,2229502562],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"}],\"name\":\"withdrawUserDataRight\",\"outputs\":[],\"selector\":[4211774851,2825282343],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" + "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataHash\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"name\":\"addDataRightEvidence\",\"outputs\":[],\"selector\":[2635209621,3623663505],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"reviewDataHash\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"name\":\"addReviewEvidence\",\"outputs\":[],\"selector\":[4024293368,766756406],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"addUser\",\"outputs\":[],\"selector\":[3239424820,3652011643],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"name\":\"appendVariableData\",\"outputs\":[],\"selector\":[2138450037,1301797456],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"checkAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isExist\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"selector\":[1771183142,1376509706],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableAccessControl\",\"outputs\":[],\"selector\":[1980433629,2854924890],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableAccessControl\",\"outputs\":[],\"selector\":[922088542,1158894738],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"genDataRightEidViaUrdi\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"eid\",\"type\":\"string\"}],\"selector\":[4068645820,1528694934],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"reviewDataHash\",\"type\":\"string[]\"}],\"name\":\"genReviewEid\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"eid\",\"type\":\"string\"}],\"selector\":[2390601602,4131535128],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAccessControl\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"status\",\"type\":\"uint32\"}],\"selector\":[4229803393,1904329564],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"selector\":[3609374908,728140679],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getDataCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dataCount\",\"type\":\"uint256\"}],\"selector\":[816278328,3023591269],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"getDataList\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"udriArray\",\"type\":\"string[]\"}],\"selector\":[2492434596,1794719790],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDataRightCategory\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"fields\",\"type\":\"string[]\"}],\"selector\":[2324699571,3796759802],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"getDataRightEvidence\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataHashSM\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"dataHashSHA\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"},{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"}],\"selector\":[606765522,519044862],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"getDataRightEvidenceViaEid\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataHashSM\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"dataHashSHA\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"},{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"}],\"selector\":[2401931980,631971877],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"name\":\"getReviewCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reviewCount\",\"type\":\"uint256\"}],\"selector\":[1485793629,1330250274],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"}],\"name\":\"getReviewCountOfReviewer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"selector\":[3868489521,2826438872],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eid\",\"type\":\"string\"}],\"name\":\"getReviewEvidenceViaEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"selector\":[2101214845,1635642682],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"}],\"name\":\"getSupportVariableDataFields\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"fileds\",\"type\":\"string[]\"}],\"selector\":[3869446330,376683502],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTextMaxLen\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"len\",\"type\":\"uint32\"}],\"selector\":[3460282540,1588090095],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"dataHash\",\"type\":\"string\"}],\"name\":\"getUdriByDatahash\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"}],\"selector\":[633708824,3726531728],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"selector\":[4005145368,4236660667],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserDataRight\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"}],\"selector\":[1105228669,1195862205],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"getUserRoles\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"usci\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"selector\":[2573946725,1585755409],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"getVerifyEvidence\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"selector\":[1855339097,4061585395],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"", + "internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"getVerifyEvidenceOfReviewer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isWithdraw\",\"type\":\"bool\"},{\"internalType\":\"string[]\",\"name\":\"metaData\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"variableData\",\"type\":\"string[]\"}],\"selector\":[1591648918,3508812136],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getstrArrayMaxLen\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"len\",\"type\":\"uint32\"}],\"selector\":[905356897,1921885619],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"}],\"name\":\"grantUserDataRight\",\"outputs\":[],\"selector\":[3258251539,3358242835],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantUserManagePermission\",\"outputs\":[],\"selector\":[1037211317,3070963644],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"grantUserRoles\",\"outputs\":[],\"selector\":[2322354691,115265356],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"hasUserManageRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"selector\":[1290417574,3048132719],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"queryUserRole\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"selector\":[289407936,1912013404],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"}],\"name\":\"revokeUserManagePermission\",\"outputs\":[],\"selector\":[4233016450,2768200898],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"roles\",\"type\":\"string[]\"}],\"name\":\"revokeUserRoles\",\"outputs\":[],\"selector\":[593762734,2271659916],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"setChainName\",\"outputs\":[],\"selector\":[3234078498,3307895570],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"fields\",\"type\":\"string[]\"}],\"name\":\"setDataRightCategory\",\"outputs\":[],\"selector\":[2472945857,2087572871],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"category\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"fields\",\"type\":\"string[]\"}],\"name\":\"setDataRightSupportVariableDataFields\",\"outputs\":[],\"selector\":[1199116808,2135762870],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"len\",\"type\":\"uint32\"}],\"name\":\"setTextMaxLen\",\"outputs\":[],\"selector\":[1356933702,1285167137],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"len\",\"type\":\"uint32\"}],\"name\":\"setstrArrayMaxLen\",\"outputs\":[],\"selector\":[453424020,3279923519],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"}],\"name\":\"withdrawDataRight\",\"outputs\":[],\"selector\":[3445852971,3715655987],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reviewerBid\",\"type\":\"string\"}],\"name\":\"withdrawReviewEvidence\",\"outputs\":[],\"selector\":[932021754,2229502562],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"udri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"bid\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"dataRight\",\"type\":\"string[]\"}],\"name\":\"withdrawUserDataRight\",\"outputs\":[],\"selector\":[4211774851,2825282343],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" }; public static final String ABI = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", ABI_ARRAY); @@ -55,6 +55,8 @@ public class IDREvidence extends Contract { public static final String FUNC_APPENDVARIABLEDATA = "appendVariableData"; + public static final String FUNC_CHECKACCOUNT = "checkAccount"; + public static final String FUNC_DISABLEACCESSCONTROL = "disableAccessControl"; public static final String FUNC_ENABLEACCESSCONTROL = "enableAccessControl"; @@ -89,6 +91,8 @@ public class IDREvidence extends Contract { public static final String FUNC_GETUDRIBYDATAHASH = "getUdriByDatahash"; + public static final String FUNC_GETUSERACCOUNT = "getUserAccount"; + public static final String FUNC_GETUSERDATARIGHT = "getUserDataRight"; public static final String FUNC_GETUSERROLES = "getUserRoles"; @@ -611,6 +615,19 @@ public class IDREvidence extends Contract { convertToNative((List) results.get(1).getValue())); } + public Tuple2 checkAccount(String account) throws ContractException { + final Function function = + new Function( + FUNC_CHECKACCOUNT, + Arrays.asList( + new org.fisco.bcos.sdk.v3.codec.datatypes.Address(account)), + Arrays.>asList( + new TypeReference() {}, new TypeReference() {})); + List results = executeCallWithMultipleValueReturn(function); + return new Tuple2( + (Boolean) results.get(0).getValue(), (String) results.get(1).getValue()); + } + public TransactionReceipt disableAccessControl() { final Function function = new Function( @@ -873,6 +890,16 @@ public class IDREvidence extends Contract { return executeCallWithSingleValueReturn(function, String.class); } + public String getUserAccount(String bid) throws ContractException { + final Function function = + new Function( + FUNC_GETUSERACCOUNT, + Arrays.asList( + new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(bid)), + Arrays.>asList(new TypeReference
() {})); + return executeCallWithSingleValueReturn(function, String.class); + } + public List getUserDataRight(String udri, String bid) throws ContractException { final Function function = new Function( diff --git a/scripts/functions.js b/scripts/functions.js index e95879510eb31d5ff0de27e0b673e3934f86279c..33f51fcd300ea30bff9603dd905e325a7eba47f9 100644 --- a/scripts/functions.js +++ b/scripts/functions.js @@ -26,6 +26,8 @@ var drFunctions = { { type: "function", name: "getDataList", selector: ["2492434596", "1794719790"] }, { type: "function", name: "queryUserRole", selector: ["289407936", "1912013404"] }, { type: "function", name: "revokeUserManagePermission", selector: ["4233016450", "2768200898"] }, + { type: "function", name: "getUserAccount", selector: ["4005145368", "4236660667"] }, + { type: "function", name: "checkAccount", selector: ["1771183142", "1376509706"] }, ], evidence: { diff --git a/test/drevidence.test.js b/test/drevidence.test.js index d8d36a7e531bfef1a8209ea31e33c6fedeee9312..a68cb5f2207312ff65645f0daf2aed5a76f0b458 100644 --- a/test/drevidence.test.js +++ b/test/drevidence.test.js @@ -289,6 +289,24 @@ describe("DREvidence System", function () { ) }); }) + + // 用户存在检查 + describe("User Account", function () { + beforeEach(async function () { + await drEvidenceInterface.connect(deployer).addUser(user1Info.bid, user1Info.usci, user1Info.name, user1Info.address, user1Info.roles); + }) + + it("getUserAccount", async function () { + let account = await drEvidenceInterface.getUserAccount(user1Info.bid); + expect(account).to.equal(user1Info.address); + }); + + it("checkAccount", async function () { + let ret = await drEvidenceInterface.checkAccount(user1Info.address); + expect(ret.isExist).to.equal(true); + expect(ret.bid).to.equal(user1Info.bid); + }); + }) }) describe("Evidence", function () { @@ -386,6 +404,18 @@ describe("DREvidence System", function () { expect(urdi).to.equal(evidenceData.udri); }); + it("Add right Evidence (with one data Hash)", async function () { + // 添加一个确权存证,确保成功 + await drEvidenceInterface.connect(user1).addDataRightEvidence(evidenceData.udri, user1Info.bid, [evidenceData.dataHash[0]], evidenceData.dataRight, evidenceData.metaData, evidenceData.variableData); + + let urdi = await drEvidenceInterface.connect(user1).getUdriByDatahash(evidenceData.dataHash[0]) + expect(urdi).to.equal(evidenceData.udri); + + let ret1 = await drEvidenceInterface.connect(user1).getDataRightEvidence(evidenceData.udri); + expect(ret1.dataHashSM).to.equal(evidenceData.dataHash[0]); + expect(ret1.dataHashSHA).to.equal(''); + }); + it("Right Evidence (Contract is inaccessible)", async function () { await drEvidenceInterface.connect(deployer).disableAccessControl(); await run_and_expect_error(