60c06040523480156200001157600080fd5b5060405162002db838038062002db8833981016040819052620000349162000119565b82806012848785816001600160a01b03811662000064576040516349e27cff60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001620000bb8782620002ae565b506002620000ca8682620002ae565b5060ff84166080819052620000e190600a6200048f565b620000ed9084620004a7565b60a05260045550620004c1975050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156200013057600080fd5b84516001600160a01b03811681146200014857600080fd5b602086810151919550906001600160401b03808211156200016857600080fd5b818801915088601f8301126200017d57600080fd5b81518181111562000192576200019262000103565b604051601f8201601f19908116603f01168101908382118183101715620001bd57620001bd62000103565b816040528281528b86848701011115620001d657600080fd5b600093505b82841015620001fa5784840186015181850187015292850192620001db565b6000928101909501919091525050506040860151606090960151949790965092505050565b600181811c908216806200023457607f821691505b6020821081036200025557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002a957600081815260208120601f850160051c81016020861015620002845750805b601f850160051c820191505b81811015620002a55782815560010162000290565b5050505b505050565b81516001600160401b03811115620002ca57620002ca62000103565b620002e281620002db84546200021f565b846200025b565b602080601f8311600181146200031a5760008415620003015750858301515b600019600386901b1c1916600185901b178555620002a5565b600085815260208120601f198616915b828110156200034b578886015182559484019460019091019084016200032a565b50858210156200036a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003d1578160001904821115620003b557620003b56200037a565b80851615620003c357918102915b93841c939080029062000395565b509250929050565b600082620003ea5750600162000489565b81620003f95750600062000489565b81600181146200041257600281146200041d576200043d565b600191505062000489565b60ff8411156200043157620004316200037a565b50506001821b62000489565b5060208310610133831016604e8410600b841016171562000462575081810a62000489565b6200046e838362000390565b80600019048211156200048557620004856200037a565b0290505b92915050565b6000620004a060ff841683620003d9565b9392505050565b80820281158282048414176200048957620004896200037a565b60805160a0516128ca620004ee6000396000818161025b0152611825015260006102c001526128ca6000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638da5cb5b11610104578063c87b56dd116100a2578063e985e9c511610071578063e985e9c51461044c578063f28ca1dd1461047a578063f2fde38b14610482578063fef314831461049557600080fd5b8063c87b56dd146103f3578063d547cfb714610406578063dd62ed3e1461040e578063e0df5b6f1461043957600080fd5b80639b19251a116100de5780639b19251a14610397578063a22cb465146103ba578063a9059cbb146103cd578063b88d4fde146103e057600080fd5b80638da5cb5b1461036957806394bf804d1461037c57806395d89b411461038f57600080fd5b8063313ce5671161017157806353d6fd591161014b57806353d6fd59146103105780636352211e146103235780636999601e1461033657806370a082311461034957600080fd5b8063313ce567146102bb57806342842e0e146102f45780634f02c4201461030757600080fd5b806318160ddd116101ad57806318160ddd1461025657806318d217c31461028b57806323b872dd146102a05780632b968958146102b357600080fd5b806306fdde03146101d4578063081812fc146101f2578063095ea7b314610233575b600080fd5b6101dc61049e565b6040516101e99190611b41565b60405180910390f35b61021b610200366004611b74565b6007602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b610246610241366004611ba4565b61052c565b60405190151581526020016101e9565b61027d7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101e9565b61029e610299366004611be4565b61067d565b005b61029e6102ae366004611c95565b6106b7565b61029e610a13565b6102e27f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101e9565b61029e610302366004611c95565b610a79565b61027d60035481565b61029e61031e366004611cd1565b610b4e565b61021b610331366004611b74565b610ba3565b61029e610344366004611d0d565b610bde565b61027d610357366004611d39565b60056020526000908152604090205481565b60005461021b906001600160a01b031681565b61029e61038a366004611d0d565b610c12565b6101dc610c46565b6102466103a5366004611d39565b600c6020526000908152604090205460ff1681565b61029e6103c8366004611cd1565b610c53565b6102466103db366004611ba4565b610cbf565b61029e6103ee366004611d54565b610cd3565b6101dc610401366004611b74565b610d96565b6101dc6111a3565b61027d61041c366004611def565b600660209081526000928352604080842090915290825290205481565b61029e610447366004611be4565b6111b0565b61024661045a366004611def565b600860209081526000928352604080842090915290825290205460ff1681565b6101dc6111e6565b61029e610490366004611d39565b6111f3565b61027d60045481565b600180546104ab90611e19565b80601f01602080910402602001604051908101604052809291908181526020018280546104d790611e19565b80156105245780601f106104f957610100808354040283529160200191610524565b820191906000526020600020905b81548152906001019060200180831161050757829003601f168201915b505050505081565b600060035482111580156105405750600082115b15610617576000828152600960205260409020546001600160a01b031633811480159061059157506001600160a01b038116600090815260086020908152604080832033845290915290205460ff16155b156105ae576040516282b42960e81b815260040160405180910390fd5b60008381526007602090815260409182902080546001600160a01b0319166001600160a01b038881169182179092559251868152908416917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350610673565b3360008181526006602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b5060015b92915050565b6000546001600160a01b031633146106a7576040516282b42960e81b815260040160405180910390fd5b600f6106b38282611ea1565b5050565b60035481116109a4576000818152600960205260409020546001600160a01b038481169116146106fa57604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b03821661072157604051634e46966960e11b815260040160405180910390fd5b336001600160a01b0384161480159061075e57506001600160a01b038316600090815260086020908152604080832033845290915290205460ff16155b801561078157506000818152600760205260409020546001600160a01b03163314155b1561079e576040516282b42960e81b815260040160405180910390fd5b6004546001600160a01b038416600090815260056020526040812080549091906107c9908490611f77565b90915550506004546001600160a01b03808416600081815260056020908152604080832080549096019095558582526009815284822080546001600160a01b031990811690941790556007815284822080549093169092559186168252600a9052908120805461083b90600190611f77565b8154811061084b5761084b611f8a565b60009182526020808320909101546001600160a01b0387168352600a82526040808420868552600b9093529092205481549293508392811061088f5761088f611f8a565b60009182526020808320909101929092556001600160a01b0386168152600a909152604090208054806108c4576108c4611fa0565b600082815260208082208301600019908101839055909201909255838252600b8152604080832054848452818420556001600160a01b038616808452600a835290832080546001818101835582865293852001869055925290546109289190611f77565b6000838152600b602052604080822092909255905183916001600160a01b03808716929088169160008051602061277283398151915291a4826001600160a01b0316846001600160a01b031660008051602061277283398151915261098c60045490565b6040519081526020015b60405180910390a350505050565b6001600160a01b03831660009081526006602090815260408083203384529091529020546000198114610a00576109db8282611f77565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610a0b84848461128f565b50505b505050565b6000546001600160a01b03163314610a3d576040516282b42960e81b815260040160405180910390fd5b600080546001600160a01b031916815560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b610a848383836106b7565b6001600160a01b0382163b15801590610b305750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610aff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b239190611fb6565b6001600160e01b03191614155b15610a0e57604051633da6393160e01b815260040160405180910390fd5b6000546001600160a01b03163314610b78576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000818152600960205260409020546001600160a01b031680610bd95760405163c5723b5160e01b815260040160405180910390fd5b919050565b6000546001600160a01b03163314610c08576040516282b42960e81b815260040160405180910390fd5b6106b38183611440565b6000546001600160a01b03163314610c3c576040516282b42960e81b815260040160405180910390fd5b6106b38183611528565b600280546104ab90611e19565b3360008181526008602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000610ccc33848461128f565b9392505050565b610cde8585856106b7565b6001600160a01b0384163b15801590610d785750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610d289033908a90899089908990600401611fe0565b6020604051808303816000875af1158015610d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6b9190611fb6565b6001600160e01b03191614155b15610a0b57604051633da6393160e01b815260040160405180910390fd5b60606000600e8054610da790611e19565b90501115610de157600e610dba83611612565b604051602001610dcb9291906120a7565b6040516020818303038152906040529050919050565b600082604051602001610df691815260200190565b6040516020818303038152906040528051906020012060f81c9050606080606060198460ff1611610e92576040518060400160405280600b81526020016a4469616d6f6e642e6a706760a81b8152509250604051806101a0016040528061016981526020016123cc610169913991506040518060400160405280600d81526020016c088d2c2dadedcc8408ae0dec6d609b1b815250905061106e565b603f8460ff1611610f0f576040518060400160405280600b81526020016a456d6572616c642e6a706760a81b815250925060405180610160016040528061012d815260200161264561012d913991506040518060400160405280600e81526020016d115b595c985b1908131959d95b9960921b815250905061106e565b60728460ff1611610f855760405180604001604052806008815260200167476f6c642e6a706760c01b81525092506040518061014001604052806101108152602001612535610110913991506040518060400160405280600a815260200169476f6c6420476c6f727960b01b815250905061106e565b60b18460ff1611611001576040518060400160405280600a81526020016953696c7665722e6a706760b01b815250925060405180610160016040528061012281526020016122aa610122913991506040518060400160405280600e81526020016d53696c7665722046616e7461737960901b815250905061106e565b6040518060400160405280600a81526020016942726f6e7a652e6a706760b01b81525092506040518061014001604052806101038152602001612792610103913991506040518060400160405280600e81526020016d42726f6e7a65204d79737465727960901b81525090505b6000600161107b88611612565b60405160200161108c9291906120cc565b60408051601f19818403018152908290526110ab918590602001612112565b604051602081830303815290604052600f856040516020016110ce9291906120a7565b60408051601f19818403018152908290526110ec9291602001612176565b6040516020818303038152906040529050600082604051602001611110919061219c565b60408051601f1981840301815282820182526004835263227d5d7d60e01b602084810191909152915190935061114a918591859101612176565b60408051601f1981840301815290829052611169918390602001612176565b60408051601f1981840301815290829052611186916020016121fa565b604051602081830303815290604052975050505050505050919050565b600e80546104ab90611e19565b6000546001600160a01b031633146111da576040516282b42960e81b815260040160405180910390fd5b600e6106b38282611ea1565b600f80546104ab90611e19565b6000546001600160a01b0316331461121d576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116611244576040516349e27cff60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60008061129b60045490565b6001600160a01b038087166000818152600560205260408082208054948a16835290822054928252939450919290918691906112d78386611f77565b90915550506001600160a01b03808716600090815260056020908152604080832080548a019055928a168252600c9052205460ff16611373576001600160a01b038716600090815260056020526040812054611334908590612255565b61133e8585612255565b6113489190611f77565b905060005b818110156113705761135e896116a5565b8061136881612269565b91505061134d565b50505b6001600160a01b0386166000908152600c602052604090205460ff166113f857600061139f8483612255565b6001600160a01b0388166000908152600560205260409020546113c3908690612255565b6113cd9190611f77565b905060005b818110156113f5576113e3886117ed565b806113ed81612269565b9150506113d2565b50505b856001600160a01b0316876001600160a01b03166000805160206127728339815191528760405161142b91815260200190565b60405180910390a35060019695505050505050565b600061144b60045490565b6001600160a01b0384166000908152600560205260408120805492935084916114748385611f77565b90915550506001600160a01b0384166000908152600c602052604090205460ff166114fc576001600160a01b0384166000908152600560205260408120546114bd908490612255565b6114c78484612255565b6114d19190611f77565b905060005b818110156114f9576114e7866116a5565b806114f181612269565b9150506114d6565b50505b6040518381526000906001600160a01b0386169060008051602061277283398151915290602001610996565b600061153360045490565b6001600160a01b03841660009081526005602052604081208054929350849161155c8385612282565b90915550506001600160a01b0384166000908152600c602052604090205460ff166115e657600061158d8383612255565b6001600160a01b0386166000908152600560205260409020546115b1908590612255565b6115bb9190611f77565b905060005b818110156115e3576115d1866117ed565b806115db81612269565b9150506115c0565b50505b6040518381526001600160a01b0385169060009060008051602061277283398151915290602001610996565b6060600061161f836119e7565b600101905060008167ffffffffffffffff81111561163f5761163f611bce565b6040519080825280601f01601f191660200182016040528015611669576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461167357509392505050565b6001600160a01b0381166116cc57604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600a6020526040812080546116f290600190611f77565b8154811061170257611702611f8a565b90600052602060002001549050600a6000836001600160a01b03166001600160a01b0316815260200190815260200160002080548061174357611743611fa0565b600082815260208082208301600019908101839055909201909255828252600b815260408083208390556009825280832080546001600160a01b031990811690915560079092528083208054909216909155600d80546001810182559083527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb501839055518291906001600160a01b03851690600080516020612772833981519152908390a45050565b6001600160a01b03811661181457604051634e46966960e11b815260040160405180910390fd5b600061181f60045490565b611849907f0000000000000000000000000000000000000000000000000000000000000000612255565b905060008160035410156118685750600380546001019081905561191f565b600d5460000361187757505050565b600d5460009061188690611abf565b9050600d818154811061189b5761189b611f8a565b90600052602060002001549150600d6001600d805490506118bc9190611f77565b815481106118cc576118cc611f8a565b9060005260206000200154600d82815481106118ea576118ea611f8a565b600091825260209091200155600d80548061190757611907611fa0565b60019003818190600052602060002001600090559055505b6000818152600960205260409020546001600160a01b0316156119555760405163119b4fd360e11b815260040160405180910390fd5b600081815260096020908152604080832080546001600160a01b0319166001600160a01b038816908117909155808452600a835290832080546001818101835582865293852001859055925290546119ad9190611f77565b6000828152600b602052604080822092909255905182916001600160a01b03861691600080516020612772833981519152908290a4505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611a265772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611a52576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611a7057662386f26fc10000830492506010015b6305f5e1008310611a88576305f5e100830492506008015b6127108310611a9c57612710830492506004015b60648310611aae576064830492506002015b600a83106106775760010192915050565b600081424433604051602001611afa93929190928352602083019190915260601b6bffffffffffffffffffffffff1916604082015260540190565b6040516020818303038152906040528051906020012060001c6106779190612295565b60005b83811015611b38578181015183820152602001611b20565b50506000910152565b6020815260008251806020840152611b60816040850160208701611b1d565b601f01601f19169190910160400192915050565b600060208284031215611b8657600080fd5b5035919050565b80356001600160a01b0381168114610bd957600080fd5b60008060408385031215611bb757600080fd5b611bc083611b8d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611bf657600080fd5b813567ffffffffffffffff80821115611c0e57600080fd5b818401915084601f830112611c2257600080fd5b813581811115611c3457611c34611bce565b604051601f8201601f19908116603f01168101908382118183101715611c5c57611c5c611bce565b81604052828152876020848701011115611c7557600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600060608486031215611caa57600080fd5b611cb384611b8d565b9250611cc160208501611b8d565b9150604084013590509250925092565b60008060408385031215611ce457600080fd5b611ced83611b8d565b915060208301358015158114611d0257600080fd5b809150509250929050565b60008060408385031215611d2057600080fd5b82359150611d3060208401611b8d565b90509250929050565b600060208284031215611d4b57600080fd5b610ccc82611b8d565b600080600080600060808688031215611d6c57600080fd5b611d7586611b8d565b9450611d8360208701611b8d565b935060408601359250606086013567ffffffffffffffff80821115611da757600080fd5b818801915088601f830112611dbb57600080fd5b813581811115611dca57600080fd5b896020828501011115611ddc57600080fd5b9699959850939650602001949392505050565b60008060408385031215611e0257600080fd5b611e0b83611b8d565b9150611d3060208401611b8d565b600181811c90821680611e2d57607f821691505b602082108103611e4d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610a0e57600081815260208120601f850160051c81016020861015611e7a5750805b601f850160051c820191505b81811015611e9957828155600101611e86565b505050505050565b815167ffffffffffffffff811115611ebb57611ebb611bce565b611ecf81611ec98454611e19565b84611e53565b602080601f831160018114611f045760008415611eec5750858301515b600019600386901b1c1916600185901b178555611e99565b600085815260208120601f198616915b82811015611f3357888601518255948401946001909101908401611f14565b5085821015611f515787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8181038181111561067757610677611f61565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060208284031215611fc857600080fd5b81516001600160e01b031981168114610ccc57600080fd5b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b6000815461204181611e19565b60018281168015612059576001811461206e5761209d565b60ff198416875282151583028701945061209d565b8560005260208060002060005b858110156120945781548a82015290840190820161207b565b50505082870194505b5050505092915050565b60006120b38285612034565b83516120c3818360208801611b1d565b01949350505050565b693d913730b6b2911d101160b11b815260006120eb600a830185612034565b61202360f01b81528351612106816002840160208801611b1d565b01600201949350505050565b60008351612124818460208801611b1d565b701116113232b9b1b934b83a34b7b7111d1160791b9083019081528351612152816011840160208801611b1d565b6a11161134b6b0b3b2911d1160a91b60119290910191820152601c01949350505050565b60008351612188818460208801611b1d565b8351908301906120c3818360208801611b1d565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a225381526f32b934b2b99116113b30b63ab2911d1160811b6020820152600082516121ed816030850160208701611b1d565b9190910160300192915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c000000000081526000825161223281601b850160208701611b1d565b91909101601b0192915050565b634e487b7160e01b600052601260045260246000fd5b6000826122645761226461223f565b500490565b60006001820161227b5761227b611f61565b5060010190565b8082018082111561067757610677611f61565b6000826122a4576122a461223f565b50069056fe53696c7665722046616e74617379203a20456c657661746520796f75722071756573742077697468207468652053696c7665722046616e746173792e2057697468696e2069747320636f6e66696e6573206c6965732074686520616c6c757265206f6620706f73736962696c6974792c206120737465702061626f766520746865206f7264696e617279207769746820747265617375726573207468617420737061726b2074686520696d6167696e6174696f6e2e204120636f6c6c656374696f6e2074686174277320726172652c2066696c6c6564207769746820776f6e646572732077616974696e6720746f2062652072657665616c65642062792074686f736520776974682074686520766973696f6e20746f20736565206265796f6e642e4469616d6f6e642045706f6368203a204174207468652070696e6e61636c65207374616e647320746865204469616d6f6e642045706f63682c20746865207a656e697468206f662072617269747920616e64206c75787572792e20546865736520626f786573206172652074686520726172657374206f6620616c6c2c207472616e7363656e64696e672074686520636f6d6d6f6e616c697479206f662074686520636f6c6c656374696f6e20746f206f666665722061207069656365206f6620686973746f72792c20612074696d656c6573732065706f636820636170747572656420696e2061206469676974616c20666f726d61742e20526573657276656420666f722074686520656c6974652c20746865204469616d6f6e642045706f63682069732074686520756c74696d6174652073796d626f6c206f662073746174757320616e6420616368696576656d656e7420696e2074686520776f726c64206f66204e4654732e476f6c6420476c6f7279203a20496e64756c676520696e20746865206f70756c656e6365206f662074686520476f6c6420476c6f72792e205468697320626f7820697320612074657374616d656e7420746f207468652073706c656e646f7220616e642070726573746967652074686174206f6e6c7920746865206665772077696c6c206b6e6f772e204974277320612074726f7665206f662076616c75652c2061206d61726b206f662064697374696e6374696f6e20666f7220736572696f757320636f6c6c6563746f7273207365656b696e6720746f2063656d656e74207468656972206c656761637920696e2074686520616e6e616c73206f6620746865206469676974616c207265616c6d2e456d6572616c64204c6567656e64203a205374657020696e746f206120776f726c64206f66206d7974687320776974682074686520456d6572616c64204c6567656e642e205368726f7564656420696e207468652068756573206f6620746865207269636865737420677265656e2c20746865736520626f786573206172652061732072617265206173207468657920617265206c6567656e646172792c206f66666572696e67206120676c696d70736520696e746f2061206e617272617469766520776f76656e2066726f6d207468652074687265616473206f66206469676974616c2064657374696e792e204f6e6c7920746865206d6f73742064656469636174656420686f6c646572732077696c6c20756e7665696c20746865206c6567656e64732077697468696e2eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42726f6e7a65204d797374657279203a20426567696e20796f757220616476656e747572652077697468207468652042726f6e7a65204d7973746572792c20776865726520657665727920747769737420616e64207475726e20686f6c64732074686520706f74656e7469616c206f662068696464656e207472656173757265732e20436f6d6d6f6e2079657420756e7072656469637461626c652c20746865736520626f7865732061726520746865206669727374207374657020696e2061206a6f75726e6579206f6620646973636f7665727920666f7220616e7920636f6c6c6563746f72206f6e2074686520457468657265756d20626c6f636b636861696e2ea26469706673582212203bb089884fae24d2c2b105433b909307647157c9b3148e3084d1848ff0e2e62e64736f6c634300081300330000000000000000000000006ca85dfd7a5f45568c1b1b718ebb97e351dcf07300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000005332b64a999400000000000000000000000000000000000000001d8ed294292a063516ed0000000000000000000000000000000000000000000000000000000000000000000044156415600000000000000000000000000000000000000000000000000000000