0x608060405234801561001057600080fd5b50600436106103275760003560e01c806366258068116101b8578063a7c5b41311610104578063d8697598116100a2578063e5261b1d1161007c578063e5261b1d14610872578063eec47d6014610885578063f96d7b801461088f578063fb3ee5711461089857600080fd5b8063d86975981461082e578063e2481dbd14610855578063e449f3411461085f57600080fd5b8063be864d68116100de578063be864d68146107eb578063c72460ee146107fe578063d449300d14610808578063d4570c1c1461081b57600080fd5b8063a7c5b41314610743578063ac9650d8146107b8578063bc88d7e4146107d857600080fd5b80638456cb591161017157806391d148541161014b57806391d14854146106ea578063946d9204146106fd578063a488b71e14610710578063a694fc3a1461073057600080fd5b80638456cb59146106bc5780638b0bd55b146106c457806390672ad8146106d757600080fd5b806366258068146105cd57806367b4cdb8146105e25780636fa3fbda1461060c57806372f702f31461061f57806379502c5514610631578063817b1cd2146106b357600080fd5b80633d173136116102775780634b63885a11610230578063509b6c3f1161020a578063509b6c3f146105605780635c975abb1461058b5780635f3e849f1461059357806363727fc2146105a657600080fd5b80634b63885a146105275780634e6e056f1461053a5780634f814cc51461054d57600080fd5b80633d173136146104b35780633e677297146104bc5780633ee16bf7146104cf5780633f4ba83a146104e257806342623360146104ea57806349aeb46f1461051457600080fd5b8063248a9ca3116102e457806330139280116102be578063301392801461040f578063350b5af0146104365780633a22502c146104495780633cfe9fd11461049a57600080fd5b8063248a9ca3146103c25780632772ce9d146103d55780632a7a0c68146103e857600080fd5b806301ffc9a71461032c5780631b0875a6146103545780631c03e6cc1461036a5780631d8b4c491461037f5780631e26571f14610392578063227102a61461039b575b600080fd5b61033f61033a3660046150f2565b6108ab565b60405190151581526020015b60405180910390f35b61035c6108d6565b60405190815260200161034b565b61037d610378366004615141565b6108e8565b005b61037d61038d3660046151a9565b610a72565b6101945461035c565b61035c7ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb181565b61035c6103d0366004615214565b610c94565b61033f6103e3366004615214565b610d86565b61035c7f000000000000000000000000000000000000000000000000ffffffffffffffff81565b61035c7f520767f2ee41b25d23e3166443601203d348640efb766878c95999973ecd38e181565b61037d61044436600461522d565b610e49565b61045c610457366004615266565b610fb2565b6040805182516001600160c01b03191681526020808401516001600160401b031690820152918101516001600160801b03169082015260600161034b565b6101d254600160c01b90046001600160401b031661035c565b6101ca5461035c565b61035c6104ca366004615141565b610fef565b61037d6104dd366004615214565b611048565b61037d61121a565b61035c6104f8366004615141565b6001600160a01b031660009081526101cf602052604090205490565b61037d6105223660046152d0565b6113a9565b61033f610535366004615141565b6114d6565b61035c610548366004615141565b6115e0565b61037d61055b366004615324565b61166d565b61057361056e366004615214565b611a44565b6040516001600160a01b03909116815260200161034b565b61033f611a52565b61037d6105a1366004615266565b611ae6565b6105737f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf81565b61035c600080516020615ba383398151915281565b61035c6105f0366004615141565b6001600160a01b031660009081526101ce602052604090205490565b61037d61061a3660046151a9565b611c57565b6101cb546001600160a01b0316610573565b6106a660408051608081018252600080825260208201819052918101829052606081019190915250604080516080810182526101cd546001600160401b038082168352600160401b820416602083015261ffff600160801b8204811693830193909352600160901b9004909116606082015290565b60405161034b9190615363565b6101c95461035c565b61037d611dea565b61037d6106d23660046153a9565b611f76565b61037d6106e53660046151a9565b61207c565b61033f6106f83660046153ea565b61228c565b61037d61070b366004615425565b612383565b61072361071e3660046153a9565b61263e565b60405161034b9190615539565b61037d61073e366004615214565b612814565b610756610751366004615214565b612922565b60405161034b9190815165ffffffffffff9081168252602080840151909116908201526040808301516001600160a01b0316908201526060808301516001600160801b0390811691830191909152608092830151169181019190915260a00190565b6107cb6107c63660046153a9565b6129ee565b60405161034b919061559c565b6107566107e6366004615214565b612ae2565b61035c6107f9366004615214565b612b9b565b61035c6101c85481565b61035c61081636600461522d565b612c92565b61035c61082936600461522d565b612cc9565b61035c7f0b8459b722d944f0580da74c767d2dcae280ce16527c19c825b302a24e208dfd81565b61035c6101c75481565b61037d61086d3660046153a9565b612d44565b61045c6108803660046155fe565b612e67565b61035c6101935481565b6101d75461035c565b61037d6108a6366004615141565b612e9f565b60006001600160e01b0319821663941be9cf60e01b14806108d057506108d082613184565b92915050565b60006108e36101d56131a9565b905090565b33610901600080516020615ba38339815191528261228c565b8061091457506109146101c7548261228c565b6109395760405162461bcd60e51b81526004016109309061562a565b60405180910390fd5b60026001540361095b5760405162461bcd60e51b815260040161093090615657565b600260015561096c6101d5836131b3565b6109b85760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a205245574152445f544f4b454e5f455849535453000000006044820152606401610930565b60406109c56101d56131a9565b1115610a045760405162461bcd60e51b815260206004820152600e60248201526d14dd185ada5b99ce88131253525560921b6044820152606401610930565b6001600160a01b0382163b610a2b5760405162461bcd60e51b81526004016109309061568e565b610a34826131c8565b60405133906001600160a01b038416907f3344e0a0f48738979c56a1b9f2cd3425597f76766d53e83439cab3fc30b067c790600090a3505060018055565b600260015403610a945760405162461bcd60e51b815260040161093090615657565b600260015533610aa3816114d6565b610abf5760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf6020526040902085610b1c5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a20494e56414c49445f4153534554535f4c454e47544800006044820152606401610930565b838614610b6b5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a20494e56414c49445f494e5055545f4c454e4754485300006044820152606401610930565b60005b86811015610c86576000868683818110610b8a57610b8a6156f5565b9050602002810190610b9c919061570b565b905090506000898984818110610bb457610bb46156f5565b9050602002016020810190610bc99190615141565b90506000808311610bec5760405162461bcd60e51b815260040161093090615754565b60005b83811015610c5257610c3e8a8a87818110610c0c57610c0c6156f5565b9050602002810190610c1e919061570b565b83818110610c2e57610c2e6156f5565b90506020020135848960016131d8565b90910190610c4b816157a1565b9050610bef565b506001600160a01b03909116600090815260018501602052604090208054909101905550610c7f816157a1565b9050610b6e565b505060018055505050505050565b60007f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf6001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1891906157ba565b6001600160a01b031663248a9ca3836040518263ffffffff1660e01b8152600401610d4591815260200190565b602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d091906157d7565b6000610d96610193546106f83390565b80610dc65750610dc67ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb13361228c565b610e385760405162461bcd60e51b815260206004820152603860248201527f477561726461626c653a20796f7520646f206e6f74206861766520746865207260448201527f6571756972656420726f6c657320746f20646f207468697300000000000000006064820152608401610930565b610e4182613239565b506001919050565b33610e62600080516020615ba38339815191528261228c565b80610e755750610e756101c7548261228c565b610e915760405162461bcd60e51b81526004016109309061562a565b600260015403610eb35760405162461bcd60e51b815260040161093090615657565b60026001556101c954610ec59061327e565b6001600160a01b03831660009081526101d0602052604090205480610f2c5760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e673a20494e53554646494349454e545f434c41494d41424c45006044820152606401610930565b6001600160a01b03841660008181526101d06020526040812055610f519084836134c8565b336001600160a01b0316836001600160a01b0316856001600160a01b03167feb4184e6deaf4d9d0984cd22dcacac383ed3c67600403e9d48a877f32843260084604051610fa091815260200190565b60405180910390a45050600180555050565b6040805160608101825260008082526020820181905291810191909152610fd88361352b565b610fe58284866001613553565b90505b9392505050565b6101c9546000908181611003576000611018565b6110186101c95461101386613656565b613768565b6001600160a01b03851660009081526101ce60205260409020549091506110409082906157f0565b949350505050565b60026001540361106a5760405162461bcd60e51b815260040161093090615657565b600260015533611079816114d6565b6110955760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf602090815260409182902080546101c95484516080810186526101cd546001600160401b038082168352600160401b8204169582019590955261ffff600160801b8604811696820196909652600160901b9094049094166060840152909290918683101561111e5760405162461bcd60e51b815260040161093090615803565b6000871161113e5760405162461bcd60e51b81526004016109309061583a565b6111478261327e565b61115b84846111568a82615871565b61378a565b8682036101c955604081015160009061117990899061ffff16613867565b6101cb546001600160a01b031660008181526101d06020526040812080549394509192849291906111ab9084906157f0565b909155506111d09050876111bf848c615871565b6001600160a01b03841691906134c8565b604080518a81526020810184905233917f0caa32aefed7436cb5c128d4c61517c3b4fd8ca09590ecadc0545441a7954864910160405180910390a250506001805550505050505050565b6000339050806001600160a01b03167f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf6001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ab91906157ba565b6001600160a01b031614806113525750806001600160a01b03167f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf6001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134791906157ba565b6001600160a01b0316145b61139e5760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c79006044820152606401610930565b6113a6613876565b50565b336113c2600080516020615ba38339815191528261228c565b806113d557506113d56101c7548261228c565b6113f15760405162461bcd60e51b81526004016109309061562a565b604080516080810182526001600160401b0387811682528616602082015261ffff8581168284015284166060820152905133907f9462329a02c37f74ff4c4fcc54801197381851fde6531472fd444620fbf0fd9d90611455906101cd908590615884565b60405180910390a280516101cd8054602084015160408501516060909501516001600160401b039485166001600160801b031990931692909217600160401b94909116939093029290921763ffffffff60801b1916600160801b61ffff9485160261ffff60901b191617600160901b93909216929092021790555050505050565b60007f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf6001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155a91906157ba565b6001600160a01b031663253bd7b7836115736101945490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156115bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d091906158f7565b6000806115ef6101d5846138c8565b9050808061160b57506101cb546001600160a01b038481169116145b6116275760405162461bcd60e51b81526004016109309061568e565b6101c9541580156116355750805b611640576000611649565b61164983613656565b6001600160a01b03841660009081526101d06020526040902054610fe891906157f0565b33611686600080516020615ba38339815191528261228c565b8061169957506116996101c7548261228c565b6116b55760405162461bcd60e51b81526004016109309061562a565b6002600154036116d75760405162461bcd60e51b815260040161093090615657565b60026001556001600160801b038211156117335760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a204d41585f5245574152445f414d4f554e540000000000006044820152606401610930565b4285116117825760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a20494e56414c49445f53544152545f4441544500000000006044820152606401610930565b8385106117d15760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a20494e56414c49445f444154455f4f5244455200000000006044820152606401610930565b65ffffffffffff8411156118275760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20494e56414c49445f454e445f44415445000000000000006044820152606401610930565b6118308361352b565b61183c833330856138ea565b91506000821161185e5760405162461bcd60e51b81526004016109309061583a565b6101d754604081106118a35760405162461bcd60e51b815260206004820152600e60248201526d14dd185ada5b99ce88131253525560921b6044820152606401610930565b60006040518060a001604052808865ffffffffffff1681526020018765ffffffffffff168152602001866001600160a01b031681526020016118e4866139f1565b6001600160801b039081168252600060209283018190526101d780546001810182559152835160029091027f069f7b5e1776a2d4bf57d8efb3ff6de682dcba14407464b37d674a8bd8984923810180549486015160408701516001600160a01b0316600160601b026bffffffffffffffffffffffff65ffffffffffff928316600160301b026bffffffffffffffffffffffff1990981692909516919091179590951792909216939093179055606083015160808401518216600160801b029116177f069f7b5e1776a2d4bf57d8efb3ff6de682dcba14407464b37d674a8bd89849249091015590506119d96101d28389613a5e565b33606080830151604080516001600160801b039092168252602082018b905281018990526001600160a01b03928316928816917f4b43c543dc2da7e74df4d701157b31ed22b9fb6a39f9c5329fff7f250b65a872910160405180910390a35050600180555050505050565b60006108d06101d583614055565b60007f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad691906158f7565b806108e357505060655460ff1690565b7f0b8459b722d944f0580da74c767d2dcae280ce16527c19c825b302a24e208dfd611b11813361228c565b611b8d5760405162461bcd60e51b815260206004820152604160248201527f536f6d61416363657373436f6e74726f6c3a2063616c6c657220646f6573206e60448201527f6f7420686176652074686520617070726f70726961746520617574686f7269746064820152607960f81b608482015260a401610930565b611b9961015f856138c8565b15611be65760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5265636f766572793a20494e56414c49445f544f4b454e000000006044820152606401610930565b611bfa6001600160a01b03851684846134c8565b336001600160a01b0316836001600160a01b0316856001600160a01b03167fca574176b1d34032f40f7fb0c519eae468b4535ebf7b27f986a7b6e2fa53d53885604051611c4991815260200190565b60405180910390a450505050565b600260015403611c795760405162461bcd60e51b815260040161093090615657565b600260015533611c88816114d6565b611ca45760405162461bcd60e51b8152600401610930906156be565b838214611cf35760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20494e434f4e53495354454e545f4c454e475448530000006044820152606401610930565b3360008181526101cf602090815260409182902082516080810184526101cd546001600160401b038082168352600160401b8204169382019390935261ffff600160801b8404811694820194909452600160901b909204909216606082015281546101c954611d619061327e565b611d6c83828361378a565b60005b88811015611dda57611dca84846060015161ffff16878d8d86818110611d9757611d976156f5565b9050602002016020810190611dac9190615141565b8c8c87818110611dbe57611dbe6156f5565b90506020020135614061565b611dd3816157a1565b9050611d6f565b5050600180555050505050505050565b6000339050806001600160a01b03167f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf6001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7b91906157ba565b6001600160a01b03161480611f225750806001600160a01b03167f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf6001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1791906157ba565b6001600160a01b0316145b611f6e5760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c79006044820152606401610930565b6113a66141fe565b600260015403611f985760405162461bcd60e51b815260040161093090615657565b600260015533611fa7816114d6565b611fc35760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf6020526040902080546101c95485611ff65760405162461bcd60e51b815260040161093090615754565b6101cb546001600160a01b03168260005b88811015612048576120348a8a83818110612024576120246156f5565b90506020020135848960006131d8565b90910190612041816157a1565b9050612007565b506120528361327e565b61205d85858361378a565b9182016101c955506101ca805491909103905550506001805550505050565b60026001540361209e5760405162461bcd60e51b815260040161093090615657565b6002600155336120ad816114d6565b6120c95760405162461bcd60e51b8152600401610930906156be565b6101cd543390600160401b90046001600160401b031683861461212e5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a20494e56414c49445f494e5055545f4c454e4754485300006044820152606401610930565b60005b86811015610c8657600086868381811061214d5761214d6156f5565b905060200281019061215f919061570b565b905090506000898984818110612177576121776156f5565b905060200201602081019061218c9190615141565b905060008083116121af5760405162461bcd60e51b815260040161093090615754565b60005b83811015612216576122028a8a878181106121cf576121cf6156f5565b90506020028101906121e1919061570b565b838181106121f1576121f16156f5565b90506020020135848989600161423b565b9091019061220f816157a1565b90506121b2565b5061222b6001600160a01b03831687836134c8565b856001600160a01b0316826001600160a01b03167f7e6632ca16a0ac6cf28448500b1a17d96c8b8163ad4c4a9b44ef5386cc02779e8360405161227091815260200190565b60405180910390a350505080612285906157a1565b9050612131565b60007f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf6001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231091906157ba565b604051632474521560e21b8152600481018590526001600160a01b03848116602483015291909116906391d1485490604401602060405180830381865afa15801561235f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe891906158f7565b600054610100900460ff16158080156123a35750600054600160ff909116105b806123bd5750303b1580156123bd575060005460ff166001145b6124205760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610930565b6000805460ff191660011790558015612443576000805461ff0019166101001790555b30600080516020615ba3833981519152604051602001612464929190615919565b60408051601f198184030181529082905280516020918201206101c7556124af9130917f520767f2ee41b25d23e3166443601203d348640efb766878c95999973ecd38e19101615919565b60408051808303601f1901815291905280516020909101206101c8556001600160a01b0383163b6125225760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a20494e56414c49445f5354414b494e475f544f4b454e00006044820152606401610930565b6101cb80546001600160a01b0319166001600160a01b03851690811790915561254a906131c8565b60005b82518110156125ca57600083828151811061256a5761256a6156f5565b60200260200101519050612587816001600160a01b03163b151590565b6125a35760405162461bcd60e51b81526004016109309061568e565b6125af6101d5826131b3565b506125b9816131c8565b506125c3816157a1565b905061254d565b506125d3614304565b6125db61433e565b6040805160008152602081019091526125f39061436b565b8015612639576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60606002600154036126625760405162461bcd60e51b815260040161093090615657565b600260015533612671816114d6565b61268d5760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf602052604090208054856001600160401b038111156126b7576126b761540f565b6040519080825280602002602001820160405280156126e0578160200160208202803683370190505b5094506126ef6101c95461327e565b6126fa82828361378a565b60005b86811015612804576000888883818110612719576127196156f5565b905060200201602081019061272e9190615141565b6001600160a01b03811660009081526001860160205260409020549091506127558261352b565b6000811161279b5760405162461bcd60e51b81526020600482015260136024820152725374616b696e673a204e4f5f5245574152445360681b6044820152606401610930565b846001016000836001600160a01b03166001600160a01b03168152602001908152602001600020600090556127d386838360016143dd565b8884815181106127e5576127e56156f5565b6020026020010181815250505050806127fd906157a1565b90506126fd565b5050600180555091949350505050565b6002600154036128365760405162461bcd60e51b815260040161093090615657565b600260015533612845816114d6565b6128615760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf6020526040902080546101c9546101cb54612890906001600160a01b03168530896138ea565b9550600086116128b25760405162461bcd60e51b81526004016109309061583a565b6128bb8161327e565b6128ca838361115689826157f0565b6128d486826157f0565b6101c9556040518681526001600160a01b038516907f6e47dcdd359b6cd69456f0f97d394bd4540a2e7c4adc1b9da076859df53756c79060200160405180910390a250506001805550505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101829052906129596101d284614530565b5090506101d78160001c81548110612973576129736156f5565b60009182526020918290206040805160a081018252600293909302909101805465ffffffffffff8082168552600160301b82041694840194909452600160601b9093046001600160a01b0316908201526001909101546001600160801b038082166060840152600160801b9091041660808201529392505050565b6060816001600160401b03811115612a0857612a0861540f565b604051908082528060200260200182016040528015612a3b57816020015b6060815260200190600190039081612a265790505b50905060005b82811015612adb57612aab30858584818110612a5f57612a5f6156f5565b9050602002810190612a71919061593b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061463192505050565b828281518110612abd57612abd6156f5565b60200260200101819052508080612ad3906157a1565b915050612a41565b5092915050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526101d78281548110612b2157612b216156f5565b60009182526020918290206040805160a081018252600293909302909101805465ffffffffffff8082168552600160301b82041694840194909452600160601b9093046001600160a01b0316908201526001909101546001600160801b038082166060840152600160801b90910416608082015292915050565b6000600260015403612bbf5760405162461bcd60e51b815260040161093090615657565b600260015533612bce816114d6565b612bea5760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf6020526040902080546101c95486821015612c205760405162461bcd60e51b815260040161093090615803565b60008711612c405760405162461bcd60e51b81526004016109309061583a565b612c498161327e565b612c5883836111568a82615871565b8681036101c9556101ca8054880190556101cb54612c839085906001600160a01b03168960006143dd565b60018055979650505050505050565b6000612c9d8261352b565b6001600160a01b03831660009081526101cf6020526040902054610fe890612cc484610fef565b614725565b6001600160a01b03821660009081526101cf60205260408120612ceb8361352b565b6001600160a01b03831660009081526002820160205260409020548154612d1590612cc486610fef565b6001600160a01b0385166000908152600184016020526040902054612d3a91906157f0565b6110409190615871565b600260015403612d665760405162461bcd60e51b815260040161093090615657565b600260015533612d75816114d6565b612d915760405162461bcd60e51b8152600401610930906156be565b6101cb546101cd5433916001600160a01b0316906001600160401b03166000805b86811015612df457612de0888883818110612dcf57612dcf6156f5565b90506020020135858786600061423b565b90910190612ded816157a1565b9050612db2565b506101ca805482900390556101cb54612e17906001600160a01b031685836134c8565b836001600160a01b03167f81b0ac4b13aab1ab3b86d524dd62924e99a9d694e94e235f627bb41589717ff782604051612e5291815260200190565b60405180910390a25050600180555050505050565b60408051606081018252600080825260208201819052918101919091526101cb54610fe89083906001600160a01b0316856000613553565b33612eca7f520767f2ee41b25d23e3166443601203d348640efb766878c95999973ecd38e18261228c565b80612edd5750612edd6101c8548261228c565b612f295760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a205345495a455f524f4c455f4f4e4c5900000000000000006044820152606401610930565b60007f0000000000000000000000000f3dc00189dbcd1d0c574e48031270cae04c4adf6001600160a01b031663ff0d1a606040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fad91906157ba565b6101c9546001600160a01b03851660009081526101cf602052604090208054929350909180612fee5760405162461bcd60e51b815260040161093090615803565b612ff78361327e565b6130038282600061378a565b8083036101c95560006130176101d56131a9565b90506000816001600160401b038111156130335761303361540f565b60405190808252806020026020018201604052801561305c578160200160208202803683370190505b50905060005b828110156131095760006130786101d583614055565b6001600160a01b03811660009081526001880160209081526040808320546101d09092528220805493945090928392906130b39084906157f0565b92505081905550808484815181106130cd576130cd6156f5565b6020908102919091018101919091526001600160a01b03909216600090815260018801909252506040812055613102816157a1565b9050613062565b506101cb546001600160a01b03166131228188866134c8565b336001600160a01b0316876001600160a01b03168a6001600160a01b03167f70de378a6bcd3fde23ad1114eabf0a3d95dc5e57733b1d1c53d987128b4a76d38786604051613171929190615981565b60405180910390a4505050505050505050565b60006001600160e01b03198216630e46e23b60e31b14806108d057506108d08261473d565b60006108d0825490565b6000610fe8836001600160a01b038416614762565b6131d461015f826131b3565b5050565b60006131e685858585613553565b60409081015160008781526101d160205282812081905591516001600160801b03909116925086917fee243f878b7fc2f54e934ca33783d4395d42bc07612e2bd4b8e0e178639f7a2891a2949350505050565b61019454604080519182526020820183905233917f53f0b6b34c97fd1733ccb4b21aea7549d7ad3a83e6316864417b8cc1a9a9a807910160405180910390a261019455565b60006132936101d2546001600160401b031690565b9050600080806132a965ffffffffffff426159b0565b90505b83156134c1576132be6101d2856147b1565b6101d7805491955091935060009190849081106132dd576132dd6156f5565b60009182526020918290206040805160a081018252600293909302909101805465ffffffffffff808216808652600160301b8304821696860196909652600160601b9091046001600160a01b031692840192909252600101546001600160801b038082166060850152600160801b9091041660808301529092508316101561336557506134c1565b60006133718242614843565b90508160800151613381826139f1565b61338b91906159c4565b6101d78054869081106133a0576133a06156f5565b6000918252602090912060016002909202010180546001600160801b03928316600160801b029216919091179055861561345b5760006133e08883613768565b905080600003613422576040808401516001600160a01b031660009081526101d060205290812080548492906134179084906157f0565b909155506134559050565b6040808401516001600160a01b031660009081526101ce602052908120805483929061344f9084906157f0565b90915550505b5061348e565b6040808301516001600160a01b031660009081526101d060205290812080548392906134889084906157f0565b90915550505b816020015165ffffffffffff168365ffffffffffff16106134b7576134b56101d2876148dc565b505b84955050506132ac565b5050505050565b6040516001600160a01b03831660248201526044810182905261263990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526148e8565b6135376101d5826138c8565b6113a65760405162461bcd60e51b81526004016109309061568e565b604080516060810182526000808252602082018190529181019190915260008584868560405160200161358994939291906159e4565b60408051808303601f19018152828252805160209182012060008a81526101d183528390206060850184525460c081901b6001600160c01b0319908116808752600160401b83046001600160401b031694870194909452600160801b9091046001600160801b03169385019390935292945091925082161461364d5760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a20494e56414c49445f5245515545535400000000000000006044820152606401610930565b50949350505050565b600080600061366e6101d2546001600160401b031690565b90505b8015613761576136836101d2826147b1565b6101d78054929450909250600091849081106136a1576136a16156f5565b60009182526020918290206040805160a0810182526002909302909101805465ffffffffffff808216808652600160301b8304909116958501959095526001600160a01b03600160601b9091041691830191909152600101546001600160801b038082166060840152600160801b90910416608082015291504210156137275750613761565b846001600160a01b031681604001516001600160a01b03160361375b5761374e8142614843565b61375890856157f0565b93505b50613671565b5050919050565b6000826137806a084595161401484a00000084615a42565b610fe89190615a59565b818114613795578083555b60006137a26101d56131a9565b905060005b818110156134c15760006137bd6101d583614055565b6001600160a01b03811660009081526101ce602090815260408083205460028b0190925290912054919250906137f38783614725565b6137fd9190615871565b6001600160a01b0383166000908152600189016020526040812080549091906138279084906157f0565b9091555061383790508582614725565b6001600160a01b03909216600090815260028801602052604090209190915550613860816157a1565b90506137a7565b600061ffff6137808385615a42565b61387e6149ba565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03811660009081526001830160205260408120541515610fe8565b6040516370a0823160e01b81526001600160a01b03838116600483015260009182918716906370a0823190602401602060405180830381865afa158015613935573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395991906157d7565b90506139706001600160a01b038716868686614a05565b6040516370a0823160e01b81526001600160a01b0385811660048301528291908816906370a0823190602401602060405180830381865afa1580156139b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139dd91906157d7565b6139e79190615871565b9695505050505050565b60006001600160801b03821115613a5a5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610930565b5090565b604080516080808201835285546001600160401b038082168452600160401b82048116602080860191909152600160801b83048216858701819052600160c01b909304821660608087019190915260019384018084166000908152948b01835293879020875195860188525460ff811615801587526101008204851693870193909352600160481b8104841697860197909752600160881b909604909116948301949094529192613b1e57613b1c86836001600160401b0316614a43565b505b6040805160c0810182526000918101828152606082018390526080820183905260a08201839052815260208101919091526040805160c0810182526000918101828152606082018390526080820183905260a082018390528152602081019190915284515b6001600160401b03811615613c1b576001600160401b0380821660009081526001808c016020908152604092839020835160c081018552815460ff81161515958201958652610100810487166060830152600160481b810487166080830152600160881b900490951660a0860152928452910154908201819052881015613c0b579250613c1b565b8051604001519092509050613b83565b604051806080016040528087600001516001600160401b03168560000151602001516001600160401b031614613c52578751613c54565b865b6001600160401b0316815260200187602001516001600160401b03168460000151602001516001600160401b031614613c91578760200151613c93565b865b6001600160401b03168152602001866001600160401b0316815260200187606001516001613cc19190615a6d565b6001600160401b03168152508960000160008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555090505087896002016000876001600160401b031681526020019081526020016000208190555060405180604001604052806040518060800160405280600115158152602001886001600160401b031681526020018660000151602001516001600160401b031681526020018560000151602001516001600160401b0316815250815260200188815250896001016000876001600160401b0316815260200190815260200160002060008201518160000160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a8154816001600160401b0302191690836001600160401b0316021790555050506020820151816001015590505081600001516000015115613f9c5781516001600160401b038681166040928301528351602080820180518416600090815260018f01909252908490208251815492519584015160609094015168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009585169590950294909417600160481b600160c81b031916600160481b9284169290920267ffffffffffffffff60881b191691909117600160881b91909216021790555b8251511561404a5782516001600160401b038087166060928301528451602080820180518416600090815260018f019092526040918290208351815492519385015194909601518516600160881b0267ffffffffffffffff60881b19948616600160481b0294909416600160481b600160c81b0319939095166101000268ffffffffffffffff00199615159690961668ffffffffffffffffff19909216919091179490941716919091171790555b505050505050505050565b6000610fe88383614d6a565b61406a8261352b565b6001600160a01b0382166000908152600186016020526040902054816140a25760405162461bcd60e51b81526004016109309061583a565b600081116140e85760405162461bcd60e51b81526020600482015260136024820152725374616b696e673a204e4f5f5245574152445360681b6044820152606401610930565b808211156141385760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e673a20494e53554646494349454e545f434c41494d41424c45006044820152606401610930565b60006141448387613867565b6001600160a01b03851660009081526101d060205260408120805492935083929091906141729084906157f0565b909155506141979050856141868386615871565b6001600160a01b03871691906134c8565b6001600160a01b03848116600081815260018a01602090815260409182902087870390558151878152908101859052928816927f4b7f0bdd3e71951c1c12390f2e6777e651743b9ba7acf3a13e9507c2f4dd5e31910160405180910390a350505050505050565b614206614d94565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138ab3390565b60008061424a87878786613553565b90508381602001516001600160401b0316426142669190615871565b10156142b45760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20494e53554646494349454e545f54494d450000000000006044820152606401610930565b60008781526101d160205260408082208290555188917f1cedb001a5114ea90393cd9f134224e9e1312545ee8a9b9533d780be6a9bf8b791a2604001516001600160801b03169695505050505050565b61430c614ddc565b614314614ddc565b61431c614e03565b614324614ddc565b61432c614ddc565b614334614ddc565b61433c614e84565b565b600054610100900460ff166143655760405162461bcd60e51b815260040161093090615a8d565b60018055565b600054610100900460ff166143925760405162461bcd60e51b815260040161093090615a8d565b60005b81518110156131d4576143cc8282815181106143b3576143b36156f5565b602002602001015161015f6131b390919063ffffffff16565b506143d6816157a1565b9050614395565b60008083116143fe5760405162461bcd60e51b81526004016109309061583a565b6101cc6000815461440e906157a1565b918290555060408051606081019091529091508061443283888887608086016159e4565b604051602081830303815290604052805190602001206001600160c01b031916815260200161446042614eb7565b6001600160401b03168152602001614477856139f1565b6001600160801b0390811690915260008381526101d160209081526040918290208451815492860151958401518516600160801b026001600160401b0396909616600160401b026001600160801b031990931660c09190911c1791909117909216929092179055516001600160a01b03808716919086169083907f1dc4096620302ec2c8b0fbec0db9683e195bddeddb5e9b48a150902b3676391c906145209088908890615ad8565b60405180910390a4949350505050565b6040805160808101825283546001600160401b038082168352600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201819052600091829184106145cb5760405162461bcd60e51b815260206004820152601960248201527f536f727465644c6973743a204f55545f4f465f424f554e4453000000000000006044820152606401610930565b80516001600160401b0316915060005b8481101561461657600092835260018601602052604090922054600160481b90046001600160401b03169161460f816157a1565b90506145db565b50506000818152600290940160205260409093205493915050565b60606001600160a01b0383163b6146995760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610930565b600080846001600160a01b0316846040516146b49190615b0a565b600060405180830381855af49150503d80600081146146ef576040519150601f19603f3d011682016040523d82523d6000602084013e6146f4565b606091505b509150915061471c8282604051806060016040528060278152602001615b7c60279139614f1f565b95945050505050565b60006a084595161401484a0000006137808385615a42565b60006001600160e01b03198216638757f10760e01b14806108d057506108d082614f58565b60008181526001830160205260408120546147a9575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108d0565b5060006108d0565b6000818152600183016020526040812054819060ff1661480c5760405162461bcd60e51b815260206004820152601660248201527514dbdc9d1959131a5cdd0e881253959053125117d25160521b6044820152606401610930565b5050600090815260028201602090815260408083205460019094019091529020549091600160481b9091046001600160401b031690565b600080836020015165ffffffffffff168310156148b2578351602085015161486b9190615b26565b65ffffffffffff1684606001516001600160801b0316856000015165ffffffffffff16856148999190615871565b6148a39190615a42565b6148ad9190615a59565b6148c1565b83606001516001600160801b03165b905083608001516001600160801b0316816110409190615871565b6000610fe88383614a43565b600061493d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614f7d9092919063ffffffff16565b805190915015612639578080602001905181019061495b91906158f7565b6126395760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610930565b6149c2611a52565b61433c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610930565b6040516001600160a01b0380851660248301528316604482015260648101829052614a3d9085906323b872dd60e01b906084016134f4565b50505050565b604080516080808201835284546001600160401b038082168452600160401b82048116602080860191909152600160801b8304821685870152600160c01b90920481166060808601918252600088815260018a018552878120885196870189525460ff8116151587526101008104851695870195909552600160481b8504841697860197909752600160881b909304821692840192909252905116614b235760405162461bcd60e51b8152602060048201526016602482015275536f727465644c6973743a204c4953545f454d50545960501b6044820152606401610930565b8051614b6a5760405162461bcd60e51b815260206004820152601660248201527514dbdc9d1959131a5cdd0e881253959053125117d25160521b6044820152606401610930565b600084815260028601602052604090205460608301519093506001600160401b0316600103614b9c5760008555614d31565b81600001516001600160401b0316846001600160401b031603614bca5760408101516001600160401b031682525b81602001516001600160401b0316846001600160401b031603614bfb5760608101516001600160401b031660208301525b60608101516001600160401b031615614c5b5760408181015160608301516001600160401b0390811660009081526001890160205292909220805470ffffffffffffffff0000000000000000001916600160481b93909216929092021790555b60408101516001600160401b031615614cb45760608101516040808301516001600160401b0390811660009081526001890160205291909120805491909216600160881b0267ffffffffffffffff60881b199091161790555b816060018051614cc390615b45565b6001600160401b03908116909152825186546020850151604086015160608701519385166001600160801b031990931692909217600160401b91851691909102176001600160801b0316600160801b918416919091026001600160c01b031617600160c01b91909216021785555b5050600091825260018084016020908152604080852080546001600160c81b031916815590920184905560029094019093529181205590565b6000826000018281548110614d8157614d816156f5565b9060005260206000200154905092915050565b614d9c611a52565b1561433c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610930565b600054610100900460ff1661433c5760405162461bcd60e51b815260040161093090615a8d565b600054610100900460ff16614e2a5760405162461bcd60e51b815260040161093090615a8d565b307ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb1604051602001614e5d929190615919565b60408051601f1981840301815291905280516020909101206101935561433c600019613239565b600054610100900460ff16614eab5760405162461bcd60e51b815260040161093090615a8d565b6065805460ff19169055565b60006001600160401b03821115613a5a5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610930565b60608315614f2e575081610fe8565b825115614f3e5782518084602001fd5b8160405162461bcd60e51b81526004016109309190615b68565b60006001600160e01b0319821663b55bd4f760e01b14806108d057506108d082614f8c565b6060610fe58484600085614fc1565b60006001600160e01b0319821663d86f1ca160e01b14806108d057506301ffc9a760e01b6001600160e01b03198316146108d0565b6060824710156150225760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610930565b6001600160a01b0385163b6150795760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610930565b600080866001600160a01b031685876040516150959190615b0a565b60006040518083038185875af1925050503d80600081146150d2576040519150601f19603f3d011682016040523d82523d6000602084013e6150d7565b606091505b50915091506150e7828286614f1f565b979650505050505050565b60006020828403121561510457600080fd5b81356001600160e01b031981168114610fe857600080fd5b6001600160a01b03811681146113a657600080fd5b803561513c8161511c565b919050565b60006020828403121561515357600080fd5b8135610fe88161511c565b60008083601f84011261517057600080fd5b5081356001600160401b0381111561518757600080fd5b6020830191508360208260051b85010111156151a257600080fd5b9250929050565b600080600080604085870312156151bf57600080fd5b84356001600160401b03808211156151d657600080fd5b6151e28883890161515e565b909650945060208701359150808211156151fb57600080fd5b506152088782880161515e565b95989497509550505050565b60006020828403121561522657600080fd5b5035919050565b6000806040838503121561524057600080fd5b823561524b8161511c565b9150602083013561525b8161511c565b809150509250929050565b60008060006060848603121561527b57600080fd5b83356152868161511c565b925060208401356152968161511c565b929592945050506040919091013590565b80356001600160401b038116811461513c57600080fd5b803561ffff8116811461513c57600080fd5b600080600080608085870312156152e657600080fd5b6152ef856152a7565b93506152fd602086016152a7565b925061530b604086016152be565b9150615319606086016152be565b905092959194509250565b6000806000806080858703121561533a57600080fd5b843593506020850135925060408501356153538161511c565b9396929550929360600135925050565b608081016108d082846001600160401b0380825116835280602083015116602084015250604081015161ffff808216604085015280606084015116606085015250505050565b600080602083850312156153bc57600080fd5b82356001600160401b038111156153d257600080fd5b6153de8582860161515e565b90969095509350505050565b600080604083850312156153fd57600080fd5b82359150602083013561525b8161511c565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561543857600080fd5b82356154438161511c565b91506020838101356001600160401b038082111561546057600080fd5b818601915086601f83011261547457600080fd5b8135818111156154865761548661540f565b8060051b604051601f19603f830116810181811085821117156154ab576154ab61540f565b6040529182528482019250838101850191898311156154c957600080fd5b938501935b828510156154ee576154df85615131565b845293850193928501926154ce565b8096505050505050509250929050565b600081518084526020808501945080840160005b8381101561552e57815187529582019590820190600101615512565b509495945050505050565b602081526000610fe860208301846154fe565b60005b8381101561556757818101518382015260200161554f565b50506000910152565b6000815180845261558881602086016020860161554c565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156155f157603f198886030184526155df858351615570565b945092850192908501906001016155c3565b5092979650505050505050565b6000806040838503121561561157600080fd5b823561561c8161511c565b946020939093013593505050565b6020808252601390820152725374616b696e673a2041444d494e5f4f4e4c5960681b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526016908201527514dd185ada5b99ce881253959053125117d054d4d15560521b604082015260600190565b6020808252601b908201527f72657175697265642070726976696c65676573206e6f74206d65740000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261572257600080fd5b8301803591506001600160401b0382111561573c57600080fd5b6020019150600581901b36038213156151a257600080fd5b6020808252601b908201527f5374616b696e673a20494e56414c49445f4944535f4c454e4754480000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000600182016157b3576157b361578b565b5060010190565b6000602082840312156157cc57600080fd5b8151610fe88161511c565b6000602082840312156157e957600080fd5b5051919050565b808201808211156108d0576108d061578b565b6020808252601b908201527f5374616b696e673a20494e53554646494349454e545f5354414b450000000000604082015260600190565b60208082526017908201527f5374616b696e673a20494e56414c49445f414d4f554e54000000000000000000604082015260600190565b818103818111156108d0576108d061578b565b82546001600160401b038082168352604082811c8216602080860191909152608084811c61ffff9081168488015260909590951c851660608088019190915287518516918701919091529086015190921660a0850152840151821660c08401528301511660e08201526101008101610fe8565b60006020828403121561590957600080fd5b81518015158114610fe857600080fd5b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6000808335601e1984360301811261595257600080fd5b8301803591506001600160401b0382111561596c57600080fd5b6020019150368190038213156151a257600080fd5b828152604060208201526000610fe560408301846154fe565b634e487b7160e01b600052601260045260246000fd5b6000826159bf576159bf61599a565b500690565b6001600160801b03818116838216019080821115612adb57612adb61578b565b84815260006bffffffffffffffffffffffff19808660601b166020840152808560601b1660348401525060028310615a2c57634e487b7160e01b600052602160045260246000fd5b5060f89190911b60488201526049019392505050565b80820281158282048414176108d0576108d061578b565b600082615a6857615a6861599a565b500490565b6001600160401b03818116838216019080821115612adb57612adb61578b565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8281526040810160028310615afd57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b60008251615b1c81846020870161554c565b9190910192915050565b65ffffffffffff828116828216039080821115612adb57612adb61578b565b60006001600160401b03821680615b5e57615b5e61578b565b6000190192915050565b602081526000610fe8602083018461557056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65647512bb95d4b127c0d01d6ada748d8b883dc98517e724044a57377f61d3efce7da164736f6c6343000812000a
0x60c0604052730f3dc00189dbcd1d0c574e48031270cae04c4adf6080526001600160401b0360a05234801561003357600080fd5b5060805160a051615bcf6200009960003960006103ed0152600081816105ab01528181610c980152818161122b015281816112c7015281816114da01528181611a5601528181611dfb01528181611e97015281816122900152612f2d0152615bcf6000f3fe608060405234801561001057600080fd5b50600436106103275760003560e01c806366258068116101b8578063a7c5b41311610104578063d8697598116100a2578063e5261b1d1161007c578063e5261b1d14610872578063eec47d6014610885578063f96d7b801461088f578063fb3ee5711461089857600080fd5b8063d86975981461082e578063e2481dbd14610855578063e449f3411461085f57600080fd5b8063be864d68116100de578063be864d68146107eb578063c72460ee146107fe578063d449300d14610808578063d4570c1c1461081b57600080fd5b8063a7c5b41314610743578063ac9650d8146107b8578063bc88d7e4146107d857600080fd5b80638456cb591161017157806391d148541161014b57806391d14854146106ea578063946d9204146106fd578063a488b71e14610710578063a694fc3a1461073057600080fd5b80638456cb59146106bc5780638b0bd55b146106c457806390672ad8146106d757600080fd5b806366258068146105cd57806367b4cdb8146105e25780636fa3fbda1461060c57806372f702f31461061f57806379502c5514610631578063817b1cd2146106b357600080fd5b80633d173136116102775780634b63885a11610230578063509b6c3f1161020a578063509b6c3f146105605780635c975abb1461058b5780635f3e849f1461059357806363727fc2146105a657600080fd5b80634b63885a146105275780634e6e056f1461053a5780634f814cc51461054d57600080fd5b80633d173136146104b35780633e677297146104bc5780633ee16bf7146104cf5780633f4ba83a146104e257806342623360146104ea57806349aeb46f1461051457600080fd5b8063248a9ca3116102e457806330139280116102be578063301392801461040f578063350b5af0146104365780633a22502c146104495780633cfe9fd11461049a57600080fd5b8063248a9ca3146103c25780632772ce9d146103d55780632a7a0c68146103e857600080fd5b806301ffc9a71461032c5780631b0875a6146103545780631c03e6cc1461036a5780631d8b4c491461037f5780631e26571f14610392578063227102a61461039b575b600080fd5b61033f61033a3660046150f2565b6108ab565b60405190151581526020015b60405180910390f35b61035c6108d6565b60405190815260200161034b565b61037d610378366004615141565b6108e8565b005b61037d61038d3660046151a9565b610a72565b6101945461035c565b61035c7ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb181565b61035c6103d0366004615214565b610c94565b61033f6103e3366004615214565b610d86565b61035c7f000000000000000000000000000000000000000000000000000000000000000081565b61035c7f520767f2ee41b25d23e3166443601203d348640efb766878c95999973ecd38e181565b61037d61044436600461522d565b610e49565b61045c610457366004615266565b610fb2565b6040805182516001600160c01b03191681526020808401516001600160401b031690820152918101516001600160801b03169082015260600161034b565b6101d254600160c01b90046001600160401b031661035c565b6101ca5461035c565b61035c6104ca366004615141565b610fef565b61037d6104dd366004615214565b611048565b61037d61121a565b61035c6104f8366004615141565b6001600160a01b031660009081526101cf602052604090205490565b61037d6105223660046152d0565b6113a9565b61033f610535366004615141565b6114d6565b61035c610548366004615141565b6115e0565b61037d61055b366004615324565b61166d565b61057361056e366004615214565b611a44565b6040516001600160a01b03909116815260200161034b565b61033f611a52565b61037d6105a1366004615266565b611ae6565b6105737f000000000000000000000000000000000000000000000000000000000000000081565b61035c600080516020615ba383398151915281565b61035c6105f0366004615141565b6001600160a01b031660009081526101ce602052604090205490565b61037d61061a3660046151a9565b611c57565b6101cb546001600160a01b0316610573565b6106a660408051608081018252600080825260208201819052918101829052606081019190915250604080516080810182526101cd546001600160401b038082168352600160401b820416602083015261ffff600160801b8204811693830193909352600160901b9004909116606082015290565b60405161034b9190615363565b6101c95461035c565b61037d611dea565b61037d6106d23660046153a9565b611f76565b61037d6106e53660046151a9565b61207c565b61033f6106f83660046153ea565b61228c565b61037d61070b366004615425565b612383565b61072361071e3660046153a9565b61263e565b60405161034b9190615539565b61037d61073e366004615214565b612814565b610756610751366004615214565b612922565b60405161034b9190815165ffffffffffff9081168252602080840151909116908201526040808301516001600160a01b0316908201526060808301516001600160801b0390811691830191909152608092830151169181019190915260a00190565b6107cb6107c63660046153a9565b6129ee565b60405161034b919061559c565b6107566107e6366004615214565b612ae2565b61035c6107f9366004615214565b612b9b565b61035c6101c85481565b61035c61081636600461522d565b612c92565b61035c61082936600461522d565b612cc9565b61035c7f0b8459b722d944f0580da74c767d2dcae280ce16527c19c825b302a24e208dfd81565b61035c6101c75481565b61037d61086d3660046153a9565b612d44565b61045c6108803660046155fe565b612e67565b61035c6101935481565b6101d75461035c565b61037d6108a6366004615141565b612e9f565b60006001600160e01b0319821663941be9cf60e01b14806108d057506108d082613184565b92915050565b60006108e36101d56131a9565b905090565b33610901600080516020615ba38339815191528261228c565b8061091457506109146101c7548261228c565b6109395760405162461bcd60e51b81526004016109309061562a565b60405180910390fd5b60026001540361095b5760405162461bcd60e51b815260040161093090615657565b600260015561096c6101d5836131b3565b6109b85760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a205245574152445f544f4b454e5f455849535453000000006044820152606401610930565b60406109c56101d56131a9565b1115610a045760405162461bcd60e51b815260206004820152600e60248201526d14dd185ada5b99ce88131253525560921b6044820152606401610930565b6001600160a01b0382163b610a2b5760405162461bcd60e51b81526004016109309061568e565b610a34826131c8565b60405133906001600160a01b038416907f3344e0a0f48738979c56a1b9f2cd3425597f76766d53e83439cab3fc30b067c790600090a3505060018055565b600260015403610a945760405162461bcd60e51b815260040161093090615657565b600260015533610aa3816114d6565b610abf5760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf6020526040902085610b1c5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a20494e56414c49445f4153534554535f4c454e47544800006044820152606401610930565b838614610b6b5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a20494e56414c49445f494e5055545f4c454e4754485300006044820152606401610930565b60005b86811015610c86576000868683818110610b8a57610b8a6156f5565b9050602002810190610b9c919061570b565b905090506000898984818110610bb457610bb46156f5565b9050602002016020810190610bc99190615141565b90506000808311610bec5760405162461bcd60e51b815260040161093090615754565b60005b83811015610c5257610c3e8a8a87818110610c0c57610c0c6156f5565b9050602002810190610c1e919061570b565b83818110610c2e57610c2e6156f5565b90506020020135848960016131d8565b90910190610c4b816157a1565b9050610bef565b506001600160a01b03909116600090815260018501602052604090208054909101905550610c7f816157a1565b9050610b6e565b505060018055505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1891906157ba565b6001600160a01b031663248a9ca3836040518263ffffffff1660e01b8152600401610d4591815260200190565b602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d091906157d7565b6000610d96610193546106f83390565b80610dc65750610dc67ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb13361228c565b610e385760405162461bcd60e51b815260206004820152603860248201527f477561726461626c653a20796f7520646f206e6f74206861766520746865207260448201527f6571756972656420726f6c657320746f20646f207468697300000000000000006064820152608401610930565b610e4182613239565b506001919050565b33610e62600080516020615ba38339815191528261228c565b80610e755750610e756101c7548261228c565b610e915760405162461bcd60e51b81526004016109309061562a565b600260015403610eb35760405162461bcd60e51b815260040161093090615657565b60026001556101c954610ec59061327e565b6001600160a01b03831660009081526101d0602052604090205480610f2c5760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e673a20494e53554646494349454e545f434c41494d41424c45006044820152606401610930565b6001600160a01b03841660008181526101d06020526040812055610f519084836134c8565b336001600160a01b0316836001600160a01b0316856001600160a01b03167feb4184e6deaf4d9d0984cd22dcacac383ed3c67600403e9d48a877f32843260084604051610fa091815260200190565b60405180910390a45050600180555050565b6040805160608101825260008082526020820181905291810191909152610fd88361352b565b610fe58284866001613553565b90505b9392505050565b6101c9546000908181611003576000611018565b6110186101c95461101386613656565b613768565b6001600160a01b03851660009081526101ce60205260409020549091506110409082906157f0565b949350505050565b60026001540361106a5760405162461bcd60e51b815260040161093090615657565b600260015533611079816114d6565b6110955760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf602090815260409182902080546101c95484516080810186526101cd546001600160401b038082168352600160401b8204169582019590955261ffff600160801b8604811696820196909652600160901b9094049094166060840152909290918683101561111e5760405162461bcd60e51b815260040161093090615803565b6000871161113e5760405162461bcd60e51b81526004016109309061583a565b6111478261327e565b61115b84846111568a82615871565b61378a565b8682036101c955604081015160009061117990899061ffff16613867565b6101cb546001600160a01b031660008181526101d06020526040812080549394509192849291906111ab9084906157f0565b909155506111d09050876111bf848c615871565b6001600160a01b03841691906134c8565b604080518a81526020810184905233917f0caa32aefed7436cb5c128d4c61517c3b4fd8ca09590ecadc0545441a7954864910160405180910390a250506001805550505050505050565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ab91906157ba565b6001600160a01b031614806113525750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134791906157ba565b6001600160a01b0316145b61139e5760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c79006044820152606401610930565b6113a6613876565b50565b336113c2600080516020615ba38339815191528261228c565b806113d557506113d56101c7548261228c565b6113f15760405162461bcd60e51b81526004016109309061562a565b604080516080810182526001600160401b0387811682528616602082015261ffff8581168284015284166060820152905133907f9462329a02c37f74ff4c4fcc54801197381851fde6531472fd444620fbf0fd9d90611455906101cd908590615884565b60405180910390a280516101cd8054602084015160408501516060909501516001600160401b039485166001600160801b031990931692909217600160401b94909116939093029290921763ffffffff60801b1916600160801b61ffff9485160261ffff60901b191617600160901b93909216929092021790555050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155a91906157ba565b6001600160a01b031663253bd7b7836115736101945490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156115bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d091906158f7565b6000806115ef6101d5846138c8565b9050808061160b57506101cb546001600160a01b038481169116145b6116275760405162461bcd60e51b81526004016109309061568e565b6101c9541580156116355750805b611640576000611649565b61164983613656565b6001600160a01b03841660009081526101d06020526040902054610fe891906157f0565b33611686600080516020615ba38339815191528261228c565b8061169957506116996101c7548261228c565b6116b55760405162461bcd60e51b81526004016109309061562a565b6002600154036116d75760405162461bcd60e51b815260040161093090615657565b60026001556001600160801b038211156117335760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a204d41585f5245574152445f414d4f554e540000000000006044820152606401610930565b4285116117825760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a20494e56414c49445f53544152545f4441544500000000006044820152606401610930565b8385106117d15760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a20494e56414c49445f444154455f4f5244455200000000006044820152606401610930565b65ffffffffffff8411156118275760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20494e56414c49445f454e445f44415445000000000000006044820152606401610930565b6118308361352b565b61183c833330856138ea565b91506000821161185e5760405162461bcd60e51b81526004016109309061583a565b6101d754604081106118a35760405162461bcd60e51b815260206004820152600e60248201526d14dd185ada5b99ce88131253525560921b6044820152606401610930565b60006040518060a001604052808865ffffffffffff1681526020018765ffffffffffff168152602001866001600160a01b031681526020016118e4866139f1565b6001600160801b039081168252600060209283018190526101d780546001810182559152835160029091027f069f7b5e1776a2d4bf57d8efb3ff6de682dcba14407464b37d674a8bd8984923810180549486015160408701516001600160a01b0316600160601b026bffffffffffffffffffffffff65ffffffffffff928316600160301b026bffffffffffffffffffffffff1990981692909516919091179590951792909216939093179055606083015160808401518216600160801b029116177f069f7b5e1776a2d4bf57d8efb3ff6de682dcba14407464b37d674a8bd89849249091015590506119d96101d28389613a5e565b33606080830151604080516001600160801b039092168252602082018b905281018990526001600160a01b03928316928816917f4b43c543dc2da7e74df4d701157b31ed22b9fb6a39f9c5329fff7f250b65a872910160405180910390a35050600180555050505050565b60006108d06101d583614055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad691906158f7565b806108e357505060655460ff1690565b7f0b8459b722d944f0580da74c767d2dcae280ce16527c19c825b302a24e208dfd611b11813361228c565b611b8d5760405162461bcd60e51b815260206004820152604160248201527f536f6d61416363657373436f6e74726f6c3a2063616c6c657220646f6573206e60448201527f6f7420686176652074686520617070726f70726961746520617574686f7269746064820152607960f81b608482015260a401610930565b611b9961015f856138c8565b15611be65760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5265636f766572793a20494e56414c49445f544f4b454e000000006044820152606401610930565b611bfa6001600160a01b03851684846134c8565b336001600160a01b0316836001600160a01b0316856001600160a01b03167fca574176b1d34032f40f7fb0c519eae468b4535ebf7b27f986a7b6e2fa53d53885604051611c4991815260200190565b60405180910390a450505050565b600260015403611c795760405162461bcd60e51b815260040161093090615657565b600260015533611c88816114d6565b611ca45760405162461bcd60e51b8152600401610930906156be565b838214611cf35760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20494e434f4e53495354454e545f4c454e475448530000006044820152606401610930565b3360008181526101cf602090815260409182902082516080810184526101cd546001600160401b038082168352600160401b8204169382019390935261ffff600160801b8404811694820194909452600160901b909204909216606082015281546101c954611d619061327e565b611d6c83828361378a565b60005b88811015611dda57611dca84846060015161ffff16878d8d86818110611d9757611d976156f5565b9050602002016020810190611dac9190615141565b8c8c87818110611dbe57611dbe6156f5565b90506020020135614061565b611dd3816157a1565b9050611d6f565b5050600180555050505050505050565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7b91906157ba565b6001600160a01b03161480611f225750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1791906157ba565b6001600160a01b0316145b611f6e5760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c79006044820152606401610930565b6113a66141fe565b600260015403611f985760405162461bcd60e51b815260040161093090615657565b600260015533611fa7816114d6565b611fc35760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf6020526040902080546101c95485611ff65760405162461bcd60e51b815260040161093090615754565b6101cb546001600160a01b03168260005b88811015612048576120348a8a83818110612024576120246156f5565b90506020020135848960006131d8565b90910190612041816157a1565b9050612007565b506120528361327e565b61205d85858361378a565b9182016101c955506101ca805491909103905550506001805550505050565b60026001540361209e5760405162461bcd60e51b815260040161093090615657565b6002600155336120ad816114d6565b6120c95760405162461bcd60e51b8152600401610930906156be565b6101cd543390600160401b90046001600160401b031683861461212e5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a20494e56414c49445f494e5055545f4c454e4754485300006044820152606401610930565b60005b86811015610c8657600086868381811061214d5761214d6156f5565b905060200281019061215f919061570b565b905090506000898984818110612177576121776156f5565b905060200201602081019061218c9190615141565b905060008083116121af5760405162461bcd60e51b815260040161093090615754565b60005b83811015612216576122028a8a878181106121cf576121cf6156f5565b90506020028101906121e1919061570b565b838181106121f1576121f16156f5565b90506020020135848989600161423b565b9091019061220f816157a1565b90506121b2565b5061222b6001600160a01b03831687836134c8565b856001600160a01b0316826001600160a01b03167f7e6632ca16a0ac6cf28448500b1a17d96c8b8163ad4c4a9b44ef5386cc02779e8360405161227091815260200190565b60405180910390a350505080612285906157a1565b9050612131565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231091906157ba565b604051632474521560e21b8152600481018590526001600160a01b03848116602483015291909116906391d1485490604401602060405180830381865afa15801561235f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe891906158f7565b600054610100900460ff16158080156123a35750600054600160ff909116105b806123bd5750303b1580156123bd575060005460ff166001145b6124205760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610930565b6000805460ff191660011790558015612443576000805461ff0019166101001790555b30600080516020615ba3833981519152604051602001612464929190615919565b60408051601f198184030181529082905280516020918201206101c7556124af9130917f520767f2ee41b25d23e3166443601203d348640efb766878c95999973ecd38e19101615919565b60408051808303601f1901815291905280516020909101206101c8556001600160a01b0383163b6125225760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a20494e56414c49445f5354414b494e475f544f4b454e00006044820152606401610930565b6101cb80546001600160a01b0319166001600160a01b03851690811790915561254a906131c8565b60005b82518110156125ca57600083828151811061256a5761256a6156f5565b60200260200101519050612587816001600160a01b03163b151590565b6125a35760405162461bcd60e51b81526004016109309061568e565b6125af6101d5826131b3565b506125b9816131c8565b506125c3816157a1565b905061254d565b506125d3614304565b6125db61433e565b6040805160008152602081019091526125f39061436b565b8015612639576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60606002600154036126625760405162461bcd60e51b815260040161093090615657565b600260015533612671816114d6565b61268d5760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf602052604090208054856001600160401b038111156126b7576126b761540f565b6040519080825280602002602001820160405280156126e0578160200160208202803683370190505b5094506126ef6101c95461327e565b6126fa82828361378a565b60005b86811015612804576000888883818110612719576127196156f5565b905060200201602081019061272e9190615141565b6001600160a01b03811660009081526001860160205260409020549091506127558261352b565b6000811161279b5760405162461bcd60e51b81526020600482015260136024820152725374616b696e673a204e4f5f5245574152445360681b6044820152606401610930565b846001016000836001600160a01b03166001600160a01b03168152602001908152602001600020600090556127d386838360016143dd565b8884815181106127e5576127e56156f5565b6020026020010181815250505050806127fd906157a1565b90506126fd565b5050600180555091949350505050565b6002600154036128365760405162461bcd60e51b815260040161093090615657565b600260015533612845816114d6565b6128615760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf6020526040902080546101c9546101cb54612890906001600160a01b03168530896138ea565b9550600086116128b25760405162461bcd60e51b81526004016109309061583a565b6128bb8161327e565b6128ca838361115689826157f0565b6128d486826157f0565b6101c9556040518681526001600160a01b038516907f6e47dcdd359b6cd69456f0f97d394bd4540a2e7c4adc1b9da076859df53756c79060200160405180910390a250506001805550505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101829052906129596101d284614530565b5090506101d78160001c81548110612973576129736156f5565b60009182526020918290206040805160a081018252600293909302909101805465ffffffffffff8082168552600160301b82041694840194909452600160601b9093046001600160a01b0316908201526001909101546001600160801b038082166060840152600160801b9091041660808201529392505050565b6060816001600160401b03811115612a0857612a0861540f565b604051908082528060200260200182016040528015612a3b57816020015b6060815260200190600190039081612a265790505b50905060005b82811015612adb57612aab30858584818110612a5f57612a5f6156f5565b9050602002810190612a71919061593b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061463192505050565b828281518110612abd57612abd6156f5565b60200260200101819052508080612ad3906157a1565b915050612a41565b5092915050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526101d78281548110612b2157612b216156f5565b60009182526020918290206040805160a081018252600293909302909101805465ffffffffffff8082168552600160301b82041694840194909452600160601b9093046001600160a01b0316908201526001909101546001600160801b038082166060840152600160801b90910416608082015292915050565b6000600260015403612bbf5760405162461bcd60e51b815260040161093090615657565b600260015533612bce816114d6565b612bea5760405162461bcd60e51b8152600401610930906156be565b3360008181526101cf6020526040902080546101c95486821015612c205760405162461bcd60e51b815260040161093090615803565b60008711612c405760405162461bcd60e51b81526004016109309061583a565b612c498161327e565b612c5883836111568a82615871565b8681036101c9556101ca8054880190556101cb54612c839085906001600160a01b03168960006143dd565b60018055979650505050505050565b6000612c9d8261352b565b6001600160a01b03831660009081526101cf6020526040902054610fe890612cc484610fef565b614725565b6001600160a01b03821660009081526101cf60205260408120612ceb8361352b565b6001600160a01b03831660009081526002820160205260409020548154612d1590612cc486610fef565b6001600160a01b0385166000908152600184016020526040902054612d3a91906157f0565b6110409190615871565b600260015403612d665760405162461bcd60e51b815260040161093090615657565b600260015533612d75816114d6565b612d915760405162461bcd60e51b8152600401610930906156be565b6101cb546101cd5433916001600160a01b0316906001600160401b03166000805b86811015612df457612de0888883818110612dcf57612dcf6156f5565b90506020020135858786600061423b565b90910190612ded816157a1565b9050612db2565b506101ca805482900390556101cb54612e17906001600160a01b031685836134c8565b836001600160a01b03167f81b0ac4b13aab1ab3b86d524dd62924e99a9d694e94e235f627bb41589717ff782604051612e5291815260200190565b60405180910390a25050600180555050505050565b60408051606081018252600080825260208201819052918101919091526101cb54610fe89083906001600160a01b0316856000613553565b33612eca7f520767f2ee41b25d23e3166443601203d348640efb766878c95999973ecd38e18261228c565b80612edd5750612edd6101c8548261228c565b612f295760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a205345495a455f524f4c455f4f4e4c5900000000000000006044820152606401610930565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ff0d1a606040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fad91906157ba565b6101c9546001600160a01b03851660009081526101cf602052604090208054929350909180612fee5760405162461bcd60e51b815260040161093090615803565b612ff78361327e565b6130038282600061378a565b8083036101c95560006130176101d56131a9565b90506000816001600160401b038111156130335761303361540f565b60405190808252806020026020018201604052801561305c578160200160208202803683370190505b50905060005b828110156131095760006130786101d583614055565b6001600160a01b03811660009081526001880160209081526040808320546101d09092528220805493945090928392906130b39084906157f0565b92505081905550808484815181106130cd576130cd6156f5565b6020908102919091018101919091526001600160a01b03909216600090815260018801909252506040812055613102816157a1565b9050613062565b506101cb546001600160a01b03166131228188866134c8565b336001600160a01b0316876001600160a01b03168a6001600160a01b03167f70de378a6bcd3fde23ad1114eabf0a3d95dc5e57733b1d1c53d987128b4a76d38786604051613171929190615981565b60405180910390a4505050505050505050565b60006001600160e01b03198216630e46e23b60e31b14806108d057506108d08261473d565b60006108d0825490565b6000610fe8836001600160a01b038416614762565b6131d461015f826131b3565b5050565b60006131e685858585613553565b60409081015160008781526101d160205282812081905591516001600160801b03909116925086917fee243f878b7fc2f54e934ca33783d4395d42bc07612e2bd4b8e0e178639f7a2891a2949350505050565b61019454604080519182526020820183905233917f53f0b6b34c97fd1733ccb4b21aea7549d7ad3a83e6316864417b8cc1a9a9a807910160405180910390a261019455565b60006132936101d2546001600160401b031690565b9050600080806132a965ffffffffffff426159b0565b90505b83156134c1576132be6101d2856147b1565b6101d7805491955091935060009190849081106132dd576132dd6156f5565b60009182526020918290206040805160a081018252600293909302909101805465ffffffffffff808216808652600160301b8304821696860196909652600160601b9091046001600160a01b031692840192909252600101546001600160801b038082166060850152600160801b9091041660808301529092508316101561336557506134c1565b60006133718242614843565b90508160800151613381826139f1565b61338b91906159c4565b6101d78054869081106133a0576133a06156f5565b6000918252602090912060016002909202010180546001600160801b03928316600160801b029216919091179055861561345b5760006133e08883613768565b905080600003613422576040808401516001600160a01b031660009081526101d060205290812080548492906134179084906157f0565b909155506134559050565b6040808401516001600160a01b031660009081526101ce602052908120805483929061344f9084906157f0565b90915550505b5061348e565b6040808301516001600160a01b031660009081526101d060205290812080548392906134889084906157f0565b90915550505b816020015165ffffffffffff168365ffffffffffff16106134b7576134b56101d2876148dc565b505b84955050506132ac565b5050505050565b6040516001600160a01b03831660248201526044810182905261263990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526148e8565b6135376101d5826138c8565b6113a65760405162461bcd60e51b81526004016109309061568e565b604080516060810182526000808252602082018190529181019190915260008584868560405160200161358994939291906159e4565b60408051808303601f19018152828252805160209182012060008a81526101d183528390206060850184525460c081901b6001600160c01b0319908116808752600160401b83046001600160401b031694870194909452600160801b9091046001600160801b03169385019390935292945091925082161461364d5760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a20494e56414c49445f5245515545535400000000000000006044820152606401610930565b50949350505050565b600080600061366e6101d2546001600160401b031690565b90505b8015613761576136836101d2826147b1565b6101d78054929450909250600091849081106136a1576136a16156f5565b60009182526020918290206040805160a0810182526002909302909101805465ffffffffffff808216808652600160301b8304909116958501959095526001600160a01b03600160601b9091041691830191909152600101546001600160801b038082166060840152600160801b90910416608082015291504210156137275750613761565b846001600160a01b031681604001516001600160a01b03160361375b5761374e8142614843565b61375890856157f0565b93505b50613671565b5050919050565b6000826137806a084595161401484a00000084615a42565b610fe89190615a59565b818114613795578083555b60006137a26101d56131a9565b905060005b818110156134c15760006137bd6101d583614055565b6001600160a01b03811660009081526101ce602090815260408083205460028b0190925290912054919250906137f38783614725565b6137fd9190615871565b6001600160a01b0383166000908152600189016020526040812080549091906138279084906157f0565b9091555061383790508582614725565b6001600160a01b03909216600090815260028801602052604090209190915550613860816157a1565b90506137a7565b600061ffff6137808385615a42565b61387e6149ba565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03811660009081526001830160205260408120541515610fe8565b6040516370a0823160e01b81526001600160a01b03838116600483015260009182918716906370a0823190602401602060405180830381865afa158015613935573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395991906157d7565b90506139706001600160a01b038716868686614a05565b6040516370a0823160e01b81526001600160a01b0385811660048301528291908816906370a0823190602401602060405180830381865afa1580156139b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139dd91906157d7565b6139e79190615871565b9695505050505050565b60006001600160801b03821115613a5a5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610930565b5090565b604080516080808201835285546001600160401b038082168452600160401b82048116602080860191909152600160801b83048216858701819052600160c01b909304821660608087019190915260019384018084166000908152948b01835293879020875195860188525460ff811615801587526101008204851693870193909352600160481b8104841697860197909752600160881b909604909116948301949094529192613b1e57613b1c86836001600160401b0316614a43565b505b6040805160c0810182526000918101828152606082018390526080820183905260a08201839052815260208101919091526040805160c0810182526000918101828152606082018390526080820183905260a082018390528152602081019190915284515b6001600160401b03811615613c1b576001600160401b0380821660009081526001808c016020908152604092839020835160c081018552815460ff81161515958201958652610100810487166060830152600160481b810487166080830152600160881b900490951660a0860152928452910154908201819052881015613c0b579250613c1b565b8051604001519092509050613b83565b604051806080016040528087600001516001600160401b03168560000151602001516001600160401b031614613c52578751613c54565b865b6001600160401b0316815260200187602001516001600160401b03168460000151602001516001600160401b031614613c91578760200151613c93565b865b6001600160401b03168152602001866001600160401b0316815260200187606001516001613cc19190615a6d565b6001600160401b03168152508960000160008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555090505087896002016000876001600160401b031681526020019081526020016000208190555060405180604001604052806040518060800160405280600115158152602001886001600160401b031681526020018660000151602001516001600160401b031681526020018560000151602001516001600160401b0316815250815260200188815250896001016000876001600160401b0316815260200190815260200160002060008201518160000160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160096101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160116101000a8154816001600160401b0302191690836001600160401b0316021790555050506020820151816001015590505081600001516000015115613f9c5781516001600160401b038681166040928301528351602080820180518416600090815260018f01909252908490208251815492519584015160609094015168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009585169590950294909417600160481b600160c81b031916600160481b9284169290920267ffffffffffffffff60881b191691909117600160881b91909216021790555b8251511561404a5782516001600160401b038087166060928301528451602080820180518416600090815260018f019092526040918290208351815492519385015194909601518516600160881b0267ffffffffffffffff60881b19948616600160481b0294909416600160481b600160c81b0319939095166101000268ffffffffffffffff00199615159690961668ffffffffffffffffff19909216919091179490941716919091171790555b505050505050505050565b6000610fe88383614d6a565b61406a8261352b565b6001600160a01b0382166000908152600186016020526040902054816140a25760405162461bcd60e51b81526004016109309061583a565b600081116140e85760405162461bcd60e51b81526020600482015260136024820152725374616b696e673a204e4f5f5245574152445360681b6044820152606401610930565b808211156141385760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e673a20494e53554646494349454e545f434c41494d41424c45006044820152606401610930565b60006141448387613867565b6001600160a01b03851660009081526101d060205260408120805492935083929091906141729084906157f0565b909155506141979050856141868386615871565b6001600160a01b03871691906134c8565b6001600160a01b03848116600081815260018a01602090815260409182902087870390558151878152908101859052928816927f4b7f0bdd3e71951c1c12390f2e6777e651743b9ba7acf3a13e9507c2f4dd5e31910160405180910390a350505050505050565b614206614d94565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138ab3390565b60008061424a87878786613553565b90508381602001516001600160401b0316426142669190615871565b10156142b45760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20494e53554646494349454e545f54494d450000000000006044820152606401610930565b60008781526101d160205260408082208290555188917f1cedb001a5114ea90393cd9f134224e9e1312545ee8a9b9533d780be6a9bf8b791a2604001516001600160801b03169695505050505050565b61430c614ddc565b614314614ddc565b61431c614e03565b614324614ddc565b61432c614ddc565b614334614ddc565b61433c614e84565b565b600054610100900460ff166143655760405162461bcd60e51b815260040161093090615a8d565b60018055565b600054610100900460ff166143925760405162461bcd60e51b815260040161093090615a8d565b60005b81518110156131d4576143cc8282815181106143b3576143b36156f5565b602002602001015161015f6131b390919063ffffffff16565b506143d6816157a1565b9050614395565b60008083116143fe5760405162461bcd60e51b81526004016109309061583a565b6101cc6000815461440e906157a1565b918290555060408051606081019091529091508061443283888887608086016159e4565b604051602081830303815290604052805190602001206001600160c01b031916815260200161446042614eb7565b6001600160401b03168152602001614477856139f1565b6001600160801b0390811690915260008381526101d160209081526040918290208451815492860151958401518516600160801b026001600160401b0396909616600160401b026001600160801b031990931660c09190911c1791909117909216929092179055516001600160a01b03808716919086169083907f1dc4096620302ec2c8b0fbec0db9683e195bddeddb5e9b48a150902b3676391c906145209088908890615ad8565b60405180910390a4949350505050565b6040805160808101825283546001600160401b038082168352600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201819052600091829184106145cb5760405162461bcd60e51b815260206004820152601960248201527f536f727465644c6973743a204f55545f4f465f424f554e4453000000000000006044820152606401610930565b80516001600160401b0316915060005b8481101561461657600092835260018601602052604090922054600160481b90046001600160401b03169161460f816157a1565b90506145db565b50506000818152600290940160205260409093205493915050565b60606001600160a01b0383163b6146995760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610930565b600080846001600160a01b0316846040516146b49190615b0a565b600060405180830381855af49150503d80600081146146ef576040519150601f19603f3d011682016040523d82523d6000602084013e6146f4565b606091505b509150915061471c8282604051806060016040528060278152602001615b7c60279139614f1f565b95945050505050565b60006a084595161401484a0000006137808385615a42565b60006001600160e01b03198216638757f10760e01b14806108d057506108d082614f58565b60008181526001830160205260408120546147a9575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108d0565b5060006108d0565b6000818152600183016020526040812054819060ff1661480c5760405162461bcd60e51b815260206004820152601660248201527514dbdc9d1959131a5cdd0e881253959053125117d25160521b6044820152606401610930565b5050600090815260028201602090815260408083205460019094019091529020549091600160481b9091046001600160401b031690565b600080836020015165ffffffffffff168310156148b2578351602085015161486b9190615b26565b65ffffffffffff1684606001516001600160801b0316856000015165ffffffffffff16856148999190615871565b6148a39190615a42565b6148ad9190615a59565b6148c1565b83606001516001600160801b03165b905083608001516001600160801b0316816110409190615871565b6000610fe88383614a43565b600061493d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614f7d9092919063ffffffff16565b805190915015612639578080602001905181019061495b91906158f7565b6126395760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610930565b6149c2611a52565b61433c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610930565b6040516001600160a01b0380851660248301528316604482015260648101829052614a3d9085906323b872dd60e01b906084016134f4565b50505050565b604080516080808201835284546001600160401b038082168452600160401b82048116602080860191909152600160801b8304821685870152600160c01b90920481166060808601918252600088815260018a018552878120885196870189525460ff8116151587526101008104851695870195909552600160481b8504841697860197909752600160881b909304821692840192909252905116614b235760405162461bcd60e51b8152602060048201526016602482015275536f727465644c6973743a204c4953545f454d50545960501b6044820152606401610930565b8051614b6a5760405162461bcd60e51b815260206004820152601660248201527514dbdc9d1959131a5cdd0e881253959053125117d25160521b6044820152606401610930565b600084815260028601602052604090205460608301519093506001600160401b0316600103614b9c5760008555614d31565b81600001516001600160401b0316846001600160401b031603614bca5760408101516001600160401b031682525b81602001516001600160401b0316846001600160401b031603614bfb5760608101516001600160401b031660208301525b60608101516001600160401b031615614c5b5760408181015160608301516001600160401b0390811660009081526001890160205292909220805470ffffffffffffffff0000000000000000001916600160481b93909216929092021790555b60408101516001600160401b031615614cb45760608101516040808301516001600160401b0390811660009081526001890160205291909120805491909216600160881b0267ffffffffffffffff60881b199091161790555b816060018051614cc390615b45565b6001600160401b03908116909152825186546020850151604086015160608701519385166001600160801b031990931692909217600160401b91851691909102176001600160801b0316600160801b918416919091026001600160c01b031617600160c01b91909216021785555b5050600091825260018084016020908152604080852080546001600160c81b031916815590920184905560029094019093529181205590565b6000826000018281548110614d8157614d816156f5565b9060005260206000200154905092915050565b614d9c611a52565b1561433c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610930565b600054610100900460ff1661433c5760405162461bcd60e51b815260040161093090615a8d565b600054610100900460ff16614e2a5760405162461bcd60e51b815260040161093090615a8d565b307ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb1604051602001614e5d929190615919565b60408051601f1981840301815291905280516020909101206101935561433c600019613239565b600054610100900460ff16614eab5760405162461bcd60e51b815260040161093090615a8d565b6065805460ff19169055565b60006001600160401b03821115613a5a5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610930565b60608315614f2e575081610fe8565b825115614f3e5782518084602001fd5b8160405162461bcd60e51b81526004016109309190615b68565b60006001600160e01b0319821663b55bd4f760e01b14806108d057506108d082614f8c565b6060610fe58484600085614fc1565b60006001600160e01b0319821663d86f1ca160e01b14806108d057506301ffc9a760e01b6001600160e01b03198316146108d0565b6060824710156150225760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610930565b6001600160a01b0385163b6150795760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610930565b600080866001600160a01b031685876040516150959190615b0a565b60006040518083038185875af1925050503d80600081146150d2576040519150601f19603f3d011682016040523d82523d6000602084013e6150d7565b606091505b50915091506150e7828286614f1f565b979650505050505050565b60006020828403121561510457600080fd5b81356001600160e01b031981168114610fe857600080fd5b6001600160a01b03811681146113a657600080fd5b803561513c8161511c565b919050565b60006020828403121561515357600080fd5b8135610fe88161511c565b60008083601f84011261517057600080fd5b5081356001600160401b0381111561518757600080fd5b6020830191508360208260051b85010111156151a257600080fd5b9250929050565b600080600080604085870312156151bf57600080fd5b84356001600160401b03808211156151d657600080fd5b6151e28883890161515e565b909650945060208701359150808211156151fb57600080fd5b506152088782880161515e565b95989497509550505050565b60006020828403121561522657600080fd5b5035919050565b6000806040838503121561524057600080fd5b823561524b8161511c565b9150602083013561525b8161511c565b809150509250929050565b60008060006060848603121561527b57600080fd5b83356152868161511c565b925060208401356152968161511c565b929592945050506040919091013590565b80356001600160401b038116811461513c57600080fd5b803561ffff8116811461513c57600080fd5b600080600080608085870312156152e657600080fd5b6152ef856152a7565b93506152fd602086016152a7565b925061530b604086016152be565b9150615319606086016152be565b905092959194509250565b6000806000806080858703121561533a57600080fd5b843593506020850135925060408501356153538161511c565b9396929550929360600135925050565b608081016108d082846001600160401b0380825116835280602083015116602084015250604081015161ffff808216604085015280606084015116606085015250505050565b600080602083850312156153bc57600080fd5b82356001600160401b038111156153d257600080fd5b6153de8582860161515e565b90969095509350505050565b600080604083850312156153fd57600080fd5b82359150602083013561525b8161511c565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561543857600080fd5b82356154438161511c565b91506020838101356001600160401b038082111561546057600080fd5b818601915086601f83011261547457600080fd5b8135818111156154865761548661540f565b8060051b604051601f19603f830116810181811085821117156154ab576154ab61540f565b6040529182528482019250838101850191898311156154c957600080fd5b938501935b828510156154ee576154df85615131565b845293850193928501926154ce565b8096505050505050509250929050565b600081518084526020808501945080840160005b8381101561552e57815187529582019590820190600101615512565b509495945050505050565b602081526000610fe860208301846154fe565b60005b8381101561556757818101518382015260200161554f565b50506000910152565b6000815180845261558881602086016020860161554c565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156155f157603f198886030184526155df858351615570565b945092850192908501906001016155c3565b5092979650505050505050565b6000806040838503121561561157600080fd5b823561561c8161511c565b946020939093013593505050565b6020808252601390820152725374616b696e673a2041444d494e5f4f4e4c5960681b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526016908201527514dd185ada5b99ce881253959053125117d054d4d15560521b604082015260600190565b6020808252601b908201527f72657175697265642070726976696c65676573206e6f74206d65740000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261572257600080fd5b8301803591506001600160401b0382111561573c57600080fd5b6020019150600581901b36038213156151a257600080fd5b6020808252601b908201527f5374616b696e673a20494e56414c49445f4944535f4c454e4754480000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000600182016157b3576157b361578b565b5060010190565b6000602082840312156157cc57600080fd5b8151610fe88161511c565b6000602082840312156157e957600080fd5b5051919050565b808201808211156108d0576108d061578b565b6020808252601b908201527f5374616b696e673a20494e53554646494349454e545f5354414b450000000000604082015260600190565b60208082526017908201527f5374616b696e673a20494e56414c49445f414d4f554e54000000000000000000604082015260600190565b818103818111156108d0576108d061578b565b82546001600160401b038082168352604082811c8216602080860191909152608084811c61ffff9081168488015260909590951c851660608088019190915287518516918701919091529086015190921660a0850152840151821660c08401528301511660e08201526101008101610fe8565b60006020828403121561590957600080fd5b81518015158114610fe857600080fd5b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6000808335601e1984360301811261595257600080fd5b8301803591506001600160401b0382111561596c57600080fd5b6020019150368190038213156151a257600080fd5b828152604060208201526000610fe560408301846154fe565b634e487b7160e01b600052601260045260246000fd5b6000826159bf576159bf61599a565b500690565b6001600160801b03818116838216019080821115612adb57612adb61578b565b84815260006bffffffffffffffffffffffff19808660601b166020840152808560601b1660348401525060028310615a2c57634e487b7160e01b600052602160045260246000fd5b5060f89190911b60488201526049019392505050565b80820281158282048414176108d0576108d061578b565b600082615a6857615a6861599a565b500490565b6001600160401b03818116838216019080821115612adb57612adb61578b565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8281526040810160028310615afd57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b60008251615b1c81846020870161554c565b9190910192915050565b65ffffffffffff828116828216039080821115612adb57612adb61578b565b60006001600160401b03821680615b5e57615b5e61578b565b6000190192915050565b602081526000610fe8602083018461557056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65647512bb95d4b127c0d01d6ada748d8b883dc98517e724044a57377f61d3efce7da164736f6c6343000812000a