0x6080604052348015600f57600080fd5b506016601a565b60d8565b600054610100900460ff161560855760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101560d6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615c6b806100e76000396000f3fe6080604052600436106103905760003560e01c80639b67043b116101dc578063d33219b411610102578063ece40cc1116100a0578063f89f6d921161006f578063f89f6d9214610bb3578063f8ce560a14610bd3578063fc0c546a14610bf3578063ffa1ad7414610c1457600080fd5b8063ece40cc114610b26578063f23a6e6114610b46578063f7903e9f14610b72578063f851a44014610b9257600080fd5b8063dd4e2ba5116100dc578063dd4e2ba514610a9d578063deaaa7cc14610ab2578063ea0217cf14610ae6578063eb9019d414610b0657600080fd5b8063d33219b414610a12578063d958bc1d14610a31578063d978ffba14610a5157600080fd5b8063b58131b01161017a578063c59057e411610149578063c59057e414610981578063c792b5aa146109a1578063cae6b657146109d2578063d0ebdbe7146109f257600080fd5b8063b58131b01461090d578063bc197c8114610922578063c01f9e371461094e578063c28bc2fa1461096e57600080fd5b8063a8b4aaf7116101b6578063a8b4aaf714610899578063ab58fb8e146108ba578063b3759161146108da578063b3e43242146108ed57600080fd5b80639b67043b146108395780639c82ec3c14610859578063a890c9101461087957600080fd5b806343859632116102c15780635f398a141161025f5780637b3c71d31161022e5780637b3c71d3146107b95780637d5e81e2146107d95780639a79018e146107f95780639a802a6d1461081957600080fd5b80635f398a1414610739578063704b6c021461075957806370b0f660146107795780637ac54f391461079957600080fd5b80634870dd9a1161029b5780634870dd9a14610670578063544ffc9c1461069957806354fd4d50146106ef578063567813881461071957600080fd5b806343859632146105cc578063452115d614610617578063481c6a751461063757600080fd5b80632656227d1161032e5780633932abb1116103085780633932abb1146105495780633bccf4fd1461055f5780633e4f49e61461057f57806340ef5a63146105ac57600080fd5b80632656227d146104e25780632d63f693146104f55780632fe3e2611461051557600080fd5b806305b1e6a31161036a57806305b1e6a31461042d57806306fdde031461045c578063150b7a021461047e578063160cbed7146104c257600080fd5b806301ffc9a7146103b857806302a251a3146103ed578063034201811461040d57600080fd5b366103b3573061039e610c28565b6001600160a01b0316146103b157600080fd5b005b600080fd5b3480156103c457600080fd5b506103d86103d33660046142a3565b610c42565b60405190151581526020015b60405180910390f35b3480156103f957600080fd5b50610195545b6040519081526020016103e4565b34801561041957600080fd5b506103ff610428366004614419565b610c53565b34801561043957600080fd5b506101f85461044f90600160a01b900460ff1681565b6040516103e491906144d9565b34801561046857600080fd5b50610471610d4b565b6040516103e49190614543565b34801561048a57600080fd5b506104a961049936600461456b565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016103e4565b3480156104ce57600080fd5b506103ff6104dd366004614740565b610ddd565b6103ff6104f0366004614740565b610df4565b34801561050157600080fd5b506103ff6105103660046147d9565b610eff565b34801561052157600080fd5b506103ff7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561055557600080fd5b50610194546103ff565b34801561056b57600080fd5b506103ff61057a3660046147f2565b610f36565b34801561058b57600080fd5b5061059f61059a3660046147d9565b610fac565b6040516103e49190614840565b3480156105b857600080fd5b506103b16105c7366004614854565b610fb7565b3480156105d857600080fd5b506103d86105e7366004614942565b600082815261012f602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561062357600080fd5b506103ff610632366004614740565b6111f9565b34801561064357600080fd5b506101fa54610658906001600160a01b031681565b6040516001600160a01b0390911681526020016103e4565b34801561067c57600080fd5b5061068661271081565b60405161ffff90911681526020016103e4565b3480156106a557600080fd5b506106d46106b43660046147d9565b600090815261012f60205260409020805460018201546002909201549092565b604080519384526020840192909252908201526060016103e4565b3480156106fb57600080fd5b506040805180820190915260018152603160f81b6020820152610471565b34801561072557600080fd5b506103ff610734366004614972565b611284565b34801561074557600080fd5b506103ff61075436600461499e565b6112ad565b34801561076557600080fd5b506103b1610774366004614a25565b6112f7565b34801561078557600080fd5b506103b16107943660046147d9565b6113a1565b3480156107a557600080fd5b506103b16107b4366004614a5b565b6113f9565b3480156107c557600080fd5b506103ff6107d4366004614a89565b611471565b3480156107e557600080fd5b506103ff6107f4366004614ae2565b6114c3565b34801561080557600080fd5b506103ff610814366004614b86565b6114cf565b34801561082557600080fd5b506103ff610834366004614c53565b6118b0565b34801561084557600080fd5b506103ff610854366004614cab565b6118c7565b34801561086557600080fd5b506103ff610874366004614d0e565b6118d6565b34801561088557600080fd5b506103b1610894366004614a25565b611b5d565b3480156108a557600080fd5b506101f854610658906001600160a01b031681565b3480156108c657600080fd5b506103ff6108d53660046147d9565b611c12565b6103ff6108e8366004614d0e565b611cae565b3480156108f957600080fd5b506103ff610908366004614d67565b611e36565b34801561091957600080fd5b506103ff6121d7565b34801561092e57600080fd5b506104a961093d366004614df1565b63bc197c8160e01b95945050505050565b34801561095a57600080fd5b506103ff6109693660046147d9565b6121e3565b6103b161097c366004614e8f565b612212565b34801561098d57600080fd5b506103ff61099c366004614740565b612392565b3480156109ad57600080fd5b506103d86109bc366004614a25565b6101fb6020526000908152604090205460ff1681565b3480156109de57600080fd5b506103ff6109ed366004614d0e565b6123cc565b3480156109fe57600080fd5b506103b1610a0d366004614a25565b612405565b348015610a1e57600080fd5b506101c6546001600160a01b0316610658565b348015610a3d57600080fd5b506103ff610a4c366004614d0e565b6124af565b348015610a5d57600080fd5b50610a8b610a6c3660046147d9565b600090815260fe6020526040902060020154600160b01b900460ff1690565b60405160ff90911681526020016103e4565b348015610aa957600080fd5b506104716126d7565b348015610abe57600080fd5b506103ff7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610af257600080fd5b506103b1610b013660046147d9565b6126f7565b348015610b1257600080fd5b506103ff610b21366004614ed2565b61274b565b348015610b3257600080fd5b506103b1610b413660046147d9565b61276c565b348015610b5257600080fd5b506104a9610b61366004614efe565b63f23a6e6160e01b95945050505050565b348015610b7e57600080fd5b506103b1610b8d366004614f5a565b6127c0565b348015610b9e57600080fd5b506101f954610658906001600160a01b031681565b348015610bbf57600080fd5b506103b1610bce366004614972565b61286c565b348015610bdf57600080fd5b506103ff610bee3660046147d9565b612a8b565b348015610bff57600080fd5b5061016154610658906001600160a01b031681565b348015610c2057600080fd5b5060016103ff565b6000610c3d6101c6546001600160a01b031690565b905090565b6000610c4d82612c54565b92915050565b600080610cf7610cef7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610c8f929190614f8b565b60405180910390208b80519060200120604051602001610cd4959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612c79565b868686612cc7565b9050610d3d8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612ce5915050565b9a9950505050505050505050565b606060fd8054610d5a90614f9b565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8690614f9b565b8015610dd35780601f10610da857610100808354040283529160200191610dd3565b820191906000526020600020905b815481529060010190602001808311610db657829003601f168201915b5050505050905090565b6000610deb85858585612ede565b95945050505050565b600080610e0386868686612392565b90506000610e1082610fac565b90506005816007811115610e2657610e266144c3565b14610e785760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f742071756575656400000060448201526064015b60405180910390fd5b600082815260fe602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90610ec69084815260200190565b60405180910390a1610edb82888888886130e3565b610ee8828888888861317d565b610ef5828888888861318a565b5095945050505050565b600081815260fe602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610f8490610cef90608001610cd4565b9050610fa1878288604051806020016040528060008152506131c3565b979650505050505050565b6000610c4d826131e6565b600054610100900460ff1615808015610fd75750600054600160ff909116105b80610ff15750303b158015610ff1575060005460ff166001145b6110545760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e6f565b6000805460ff191660011790558015611077576000805461ff0019166101001790555b6101f880546001600160a01b0386166001600160a01b03198216811783558a92916001600160a81b03191617600160a01b8360018111156110ba576110ba6144c3565b02179055506101f854604051632533c2a760e21b81526001600160a01b03909116906394cf0a9c906110f490309087908790600401615053565b600060405180830381600087803b15801561110e57600080fd5b505af1158015611122573d6000803e3d6000fd5b5050505061114c6040518060400160405280600581526020016441676f726160d81b815250613333565b61115461338a565b61115d896133b3565b61116d6119af61b3cb60006133e3565b6111768561341a565b6101f980546001600160a01b03808a166001600160a01b0319928316179092556101fa80549289169290911691909117905580156111ee576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b60008061120886868686612392565b6101f95490915033906001600160a01b031681148061123557506101c6546001600160a01b038281169116145b8061125c5750600082815260fe60205260409020600301546001600160a01b038281169116145b6112785760405162461bcd60e51b8152600401610e6f90615174565b610fa18787878761344a565b6000803390506112a5848285604051806020016040528060008152506131c3565b949350505050565b600080339050610fa187828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612ce5915050565b6101f95433906001600160a01b0316811480159061132457506101c6546001600160a01b03828116911614155b1561134257604051632e1cf34f60e11b815260040160405180910390fd5b6101f9546040516001600160a01b038085169216907fbf265e8326285a2747e33e54d5945f7111f2b5edb826eb8c08d4677779b3ff9790600090a3506101f980546001600160a01b0319166001600160a01b0392909216919091179055565b6101f95433906001600160a01b031681148015906113ce57506101c6546001600160a01b03828116911614155b156113ec57604051632e1cf34f60e11b815260040160405180910390fd5b6113f582613458565b5050565b6101f95433906001600160a01b0316811480159061142657506101c6546001600160a01b03828116911614155b1561144457604051632e1cf34f60e11b815260040160405180910390fd5b506001600160a01b039190911660009081526101fb60205260409020805460ff1916911515919091179055565b6000803390506114b986828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131c392505050565b9695505050505050565b6000610deb8585858560005b6101fa5460009033906001600160a01b0316811480159061150457506114f36121d7565b61150282610b216001436151e7565b105b156115225760405163d9cd32f360e01b815260040160405180910390fd5b855187511461154457604051633465db5d60e11b815260040160405180910390fd5b845187511461156657604051633465db5d60e11b815260040160405180910390fd5b86516000036115885760405163d377eca560e01b815260040160405180910390fd5b6101f85460405163f48aef3360e01b815260ff851660048201526001600160a01b039091169063f48aef3390602401600060405180830381865afa1580156115d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115fc919081019061526b565b6040015151158061168d57506101f85460405163f48aef3360e01b815260ff851660048201526000916001600160a01b03169063f48aef3390602401600060405180830381865afa158015611655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167d919081019061526b565b608001516001600160a01b031614155b156116b0576040516337d0292760e01b815260ff84166004820152602401610e6f565b6101f854604051633c153bff60e21b81526001600160a01b039091169063f054effc906116e5908a90899088906004016153ea565b600060405180830381600087803b1580156116ff57600080fd5b505af1158015611713573d6000803e3d6000fd5b5050505061172a8787878780519060200120612392565b600081815260fe6020908152604091829020825191820190925281546001600160401b031690819052919350901561177557604051637031547960e11b815260040160405180910390fd5b60006117896117846101945490565b61349b565b6117924361349b565b61179c9190615423565b905060006117ad6117846101955490565b6117b79083615423565b90506117c38383613507565b6117d06001840182613507565b60028301805460ff60b01b1916600160b01b60ff8916021790556003830180546001600160a01b0319166001600160a01b038616179055336001600160a01b0316857fc8df7ff219f3c0358e14500814d8b62b443a4bebf3a596baa60b9295b1cf1bde8c8c8e516001600160401b0381111561184e5761184e61432b565b60405190808252806020026020018201604052801561188157816020015b606081526020019060019003908161186c5790505b508d88888f8f60405161189b989796959493929190615474565b60405180910390a35050505095945050505050565b60006118bd848484613525565b90505b9392505050565b60006118bd8484846000611e36565b6000806118e48585856123cc565b90506000806000876001600160a01b0316634e2b2bb385896040518363ffffffff1660e01b8152600401611919929190615561565b6000604051808303816000875af1158015611938573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611960919081019061566e565b91945092509050600461197285610fac565b6007811115611983576119836144c3565b146119a05760405162461bcd60e51b8152600401610e6f90615759565b6101c6546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156119eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0f919061579a565b6101c65460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790611a4a908790879087906000908e906004016157b3565b602060405180830381865afa158015611a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8b919061579a565b60008681526101c76020526040808220929092556101c65491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091611ad891889188918891908e908990600401615801565b600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892858242611b389190615859565b6040805192835260208301919091520160405180910390a15092979650505050505050565b611b65610c28565b6001600160a01b0316336001600160a01b031614611bc05760405162461bcd60e51b8152602060048201526018602482015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b6044820152606401610e6f565b30611bc9610c28565b6001600160a01b031614611c065760008036604051611be9929190614f8b565b604051809103902090505b80611bff60ff61359c565b03611bf457505b611c0f8161361b565b50565b6101c65460008281526101c7602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c95919061579a565b905080600114611ca557806118c0565b60009392505050565b600080611cbc8585856123cc565b90506000611cc982610fac565b90506005816007811115611cdf57611cdf6144c3565b14611d2c5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74207175657565640000006044820152606401610e6f565b600082815260fe602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90611d7a9084815260200190565b60405180910390a16000806000886001600160a01b0316634e2b2bb3868a6040518363ffffffff1660e01b8152600401611db5929190615561565b6000604051808303816000875af1158015611dd4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dfc919081019061566e565b925092509250611e0f858484848b6130e3565b611e1c858484848b61317d565b611e29858484848b61318a565b5092979650505050505050565b6101fa5460009033906001600160a01b03168114611e8457611e566121d7565b611e6582610b216001436151e7565b1015611e845760405163d9cd32f360e01b815260040160405180910390fd5b6001600160a01b03861660009081526101fb602052604090205460ff16611eed5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a206d6f64756c65206e6f7420617070726f7665640000006044820152606401610e6f565b6101f85460405163f48aef3360e01b815260ff851660048201526001600160a01b039091169063f48aef3390602401600060405180830381865afa158015611f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f61919081019061526b565b60400151511580611ff357506101f85460405163f48aef3360e01b815260ff851660048201526001600160a01b0388811692169063f48aef3390602401600060405180830381865afa158015611fbb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611fe3919081019061526b565b608001516001600160a01b031614155b15612016576040516337d0292760e01b815260ff84166004820152602401610e6f565b835160208501206120288787836123cc565b600081815260fe6020908152604091829020825191820190925281546001600160401b031690819052919450901561207357604051637031547960e11b815260040160405180910390fd5b60006120826117846101945490565b61208b4361349b565b6120959190615423565b905060006120a66117846101955490565b6120b09083615423565b90506120bc8383613507565b6120c96001840182613507565b60028301805462010000600160b81b031916620100006001600160a01b038d811691820260ff60b01b191692909217600160b01b60ff8c1602179092556003850180546001600160a01b0319169188169190911790556040516310b255bb60e01b81526310b255bb906121449089908d90899060040161586c565b600060405180830381600087803b15801561215e57600080fd5b505af1158015612172573d6000803e3d6000fd5b50505050896001600160a01b0316856001600160a01b0316877f505ee268ba7fa7dab901965f6c2eae1ca9a1199856dd0d4147302feb4000d82f8c86868e8e6040516121c2959493929190615895565b60405180910390a45050505050949350505050565b6000610c3d6101965490565b600081815260fe602090815260408083208151928301909152600101546001600160401b031690819052610f27565b61221a610c28565b6001600160a01b0316336001600160a01b0316146122755760405162461bcd60e51b8152602060048201526018602482015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b6044820152606401610e6f565b3061227e610c28565b6001600160a01b0316146122bb576000803660405161229e929190614f8b565b604051809103902090505b806122b460ff61359c565b036122a957505b6001600160a01b03841660009081526101fb602052604090205460ff16156123015760405163e22c3de160e01b81526001600160a01b0385166004820152602401610e6f565b600080856001600160a01b031685858560405161231f929190614f8b565b60006040518083038185875af1925050503d806000811461235c576040519150601f19603f3d011682016040523d82523d6000602084013e612361565b606091505b50915091506123898282604051806060016040528060288152602001615bd760289139613686565b50505050505050565b6000848484846040516020016123ab94939291906158ee565b60408051601f19818403018152919052805160209091012095945050505050565b6000308484846040516020016123e59493929190615939565b60408051601f198184030181529190528051602090910120949350505050565b6101f95433906001600160a01b0316811480159061243257506101c6546001600160a01b03828116911614155b1561245057604051632e1cf34f60e11b815260040160405180910390fd5b6101fa546040516001600160a01b038085169216907fc64707e618a83637fc41ad1e3aa4242bd5fdd353f3d60bc0faf40db0d7d8607890600090a3506101fa80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806124bd8585856123cc565b6101f95490915033906001600160a01b03168114806124ea57506101c6546001600160a01b038281169116145b806125115750600082815260fe60205260409020600301546001600160a01b038281169116145b61252d5760405162461bcd60e51b8152600401610e6f90615174565b600061253883610fac565b9050600281600781111561254e5761254e6144c3565b1415801561256e5750600681600781111561256b5761256b6144c3565b14155b801561258c57506007816007811115612589576125896144c3565b14155b6125d85760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610e6f565b600083815260fe602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906126289085815260200190565b60405180910390a160008381526101c76020526040902054156126cc576101c65460008481526101c760205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916126899160040190815260200190565b600060405180830381600087803b1580156126a357600080fd5b505af11580156126b7573d6000803e3d6000fd5b50505060008481526101c76020526040812055505b509095945050505050565b6060604051806060016040528060378152602001615bff60379139905090565b6101f95433906001600160a01b0316811480159061272457506101c6546001600160a01b03828116911614155b1561274257604051632e1cf34f60e11b815260040160405180910390fd5b6113f58261369f565b60006118c0838361276760408051602081019091526000815290565b613525565b6101f95433906001600160a01b0316811480159061279957506101c6546001600160a01b03828116911614155b156127b757604051632e1cf34f60e11b815260040160405180910390fd5b6113f582613742565b6101f95433906001600160a01b031681148015906127ed57506101c6546001600160a01b03828116911614155b1561280b57604051632e1cf34f60e11b815260040160405180910390fd5b600083815260fe602052604090206128269060010183613507565b604080518481526001600160401b03841660208201527fa970323612abc91ce4b6fd8869dc11458f53fea39343e04625af3f2dc999b05d910160405180910390a1505050565b6101f95433906001600160a01b0316811480159061289957506101c6546001600160a01b03828116911614155b156128b757604051632e1cf34f60e11b815260040160405180910390fd5b6128c083610eff565b6000036128e057604051630992f7ad60e01b815260040160405180910390fd5b6101f85460405163f48aef3360e01b815260ff841660048201526001600160a01b039091169063f48aef3390602401600060405180830381865afa15801561292c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612954919081019061526b565b60400151511580612a005750600083815260fe602052604090819020600201546101f854915163f48aef3360e01b815260ff85166004820152620100009091046001600160a01b0390811692169063f48aef3390602401600060405180830381865afa1580156129c8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129f0919081019061526b565b608001516001600160a01b031614155b15612a23576040516337d0292760e01b815260ff83166004820152602401610e6f565b600083815260fe6020908152604091829020600201805460ff60b01b1916600160b01b60ff871690810291909117909155915191825284917f246d525ff8e335b248f75b3d1a095f4e8d1a2a65998704e5957f37b05e3eca00910160405180910390a2505050565b600080612a9783610eff565b90506000806101f854600160a01b900460ff166001811115612abb57612abb6144c3565b03612b355761016154604051632394e7a360e21b8152600481018490526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612b0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2e919061579a565b9050612ba6565b61016154604051630b01d45760e01b8152600481018490526001600160a01b0390911690630b01d45790602401602060405180830381865afa158015612b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba3919061579a565b90505b600084815260fe602052604090819020600201546101f854915163f48aef3360e01b8152600160b01b90910460ff166004820181905291612710916001600160a01b039091169063f48aef3390602401600060405180830381865afa158015612c13573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c3b919081019061526b565b51612c4a9061ffff1684615976565b610deb919061598d565b60006001600160e01b03198216636e665ced60e01b1480610c4d5750610c4d82613785565b6000610c4d612c866137f0565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000612cd88787878761386b565b91509150610ef58161392f565b60006001612cf287610fac565b6007811115612d0357612d036144c3565b14612d5c5760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610e6f565b600086815260fe602090815260408083208151808401835290546001600160401b0316908190528151928301909152918152612d99918791613525565b9050612da88686868486613a79565b600086815260fe60205260409020600201546201000090046001600160a01b03168015612e36576040516313d72aeb60e21b81526001600160a01b03821690634f5cabac90612e03908a908a908a9088908a906004016159af565b600060405180830381600087803b158015612e1d57600080fd5b505af1158015612e31573d6000803e3d6000fd5b505050505b8251600003612e8b57856001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda488878588604051612e7e94939291906159e5565b60405180910390a2610ef5565b856001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128887858888604051612ecc959493929190615a0d565b60405180910390a25095945050505050565b600080612eed86868686612392565b90506004612efa82610fac565b6007811115612f0b57612f0b6144c3565b14612f285760405162461bcd60e51b8152600401610e6f90615759565b6101c6546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa158015612f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f97919061579a565b6101c65460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790612fd2908a908a908a906000908b906004016157b3565b602060405180830381865afa158015612fef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613013919061579a565b60008381526101c76020526040808220929092556101c65491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091613060918b918b918b91908b908990600401615801565b600060405180830381600087803b15801561307a57600080fd5b505af115801561308e573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426130c09190615859565b604080519283526020830191909152015b60405180910390a15095945050505050565b306130ec610c28565b6001600160a01b0316146131765760005b845181101561317457306001600160a01b031685828151811061312257613122615a53565b60200260200101516001600160a01b03160361316c5761316c83828151811061314d5761314d615a53565b60200260200101518051906020012060ff613bf490919063ffffffff16565b6001016130fd565b505b5050505050565b6131768585858585613c30565b30613193610c28565b6001600160a01b0316146131765760ff54600f81810b600160801b909204900b131561317657600060ff55613176565b6000610deb858585856131e160408051602081019091526000815290565b612ce5565b6000806131f283613ca5565b90506004816007811115613208576132086144c3565b146132135792915050565b60008381526101c760205260409020548061322f575092915050565b6101c654604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa158015613279573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061329d9190615a69565b156132ac575060079392505050565b6101c654604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa1580156132f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061331a9190615a69565b15613329575060059392505050565b5060029392505050565b600054610100900460ff1661335a5760405162461bcd60e51b8152600401610e6f90615a86565b6133818161337c6040805180820190915260018152603160f81b602082015290565b613da5565b611c0f81613de6565b600054610100900460ff166133b15760405162461bcd60e51b8152600401610e6f90615a86565b565b600054610100900460ff166133da5760405162461bcd60e51b8152600401610e6f90615a86565b611c0f81613e19565b600054610100900460ff1661340a5760405162461bcd60e51b8152600401610e6f90615a86565b613415838383613e63565b505050565b600054610100900460ff166134415760405162461bcd60e51b8152600401610e6f90615a86565b611c0f81613ea5565b6000610deb85858585613ecc565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b60006001600160401b038211156135035760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610e6f565b5090565b815467ffffffffffffffff19166001600160401b0391909116179055565b61016154604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613578573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bd919061579a565b60006135b78254600f81810b600160801b909204900b131590565b156135d557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6101c654604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a16101c680546001600160a01b0319166001600160a01b0392909216919091179055565b606083156136955750816118c0565b6118c08383613f82565b600081116136ff5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610e6f565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b60006001600160e01b0319821663bf26d89760e01b14806137b657506001600160e01b031982166379dd796f60e01b145b806137d157506001600160e01b03198216630271189760e51b145b80610c4d57506301ffc9a760e01b6001600160e01b0319831614610c4d565b6000610c3d7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61381f60655490565b6066546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156138a25750600090506003613926565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156138f6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661391f57600060019250925050613926565b9150600090505b94509492505050565b6000816004811115613943576139436144c3565b0361394b5750565b600181600481111561395f5761395f6144c3565b036139ac5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610e6f565b60028160048111156139c0576139c06144c3565b03613a0d5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610e6f565b6003816004811115613a2157613a216144c3565b03611c0f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610e6f565b600085815261012f602090815260408083206001600160a01b0388168452600381019092529091205460ff1615613b025760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b6064820152608401610e6f565b6001600160a01b03851660009081526003820160205260409020805460ff1916600117905560ff8416613b4e5782816000016000828254613b439190615859565b909155506131749050565b60001960ff851601613b6e5782816001016000828254613b439190615859565b60011960ff851601613b8e5782816002016000828254613b439190615859565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b6064820152608401610e6f565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b6101c65460405163e38335e560e01b81526001600160a01b039091169063e38335e5903490613c6c9088908890889060009089906004016157b3565b6000604051808303818588803b158015613c8557600080fd5b505af1158015613c99573d6000803e3d6000fd5b50505050505050505050565b600081815260fe60205260408120600281015460ff1615613cc95750600792915050565b6002810154610100900460ff1615613ce45750600292915050565b6000613cef84610eff565b905080600003613d415760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610e6f565b438110613d52575060009392505050565b6000613d5d856121e3565b9050438110613d7157506001949350505050565b613d7a85613fac565b8015613d8a5750613d8a85614006565b15613d9a57506004949350505050565b506003949350505050565b600054610100900460ff16613dcc5760405162461bcd60e51b8152600401610e6f90615a86565b815160209283012081519190920120606591909155606655565b600054610100900460ff16613e0d5760405162461bcd60e51b8152600401610e6f90615a86565b60fd6113f58282615b18565b600054610100900460ff16613e405760405162461bcd60e51b8152600401610e6f90615a86565b61016180546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16613e8a5760405162461bcd60e51b8152600401610e6f90615a86565b613e9383613458565b613e9c8261369f565b61341581613742565b600054610100900460ff16611c065760405162461bcd60e51b8152600401610e6f90615a86565b600080613edb86868686614197565b60008181526101c7602052604090205490915015610deb576101c65460008281526101c760205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f591613f379160040190815260200190565b600060405180830381600087803b158015613f5157600080fd5b505af1158015613f65573d6000803e3d6000fd5b50505060008281526101c760205260408120555095945050505050565b815115613f925781518083602001fd5b8060405162461bcd60e51b8152600401610e6f9190614543565b600080600080613fd685600090815261012f60205260409020805460018201546002909201549092565b9194509250905080613fe88385615859565b613ff29190615859565b613ffb86612a8b565b111595945050505050565b600081815260fe6020526040812060028101546201000090046001600160a01b031680156140a55760405163a54bd3eb60e01b8152600481018590526001600160a01b0382169063a54bd3eb90602401602060405180830381865afa158015614073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140979190615a69565b6140a5575060009392505050565b6101f854600283015460405163f48aef3360e01b8152600160b01b90910460ff1660048201526000916001600160a01b03169063f48aef3390602401600060405180830381865afa1580156140fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614126919081019061526b565b6020015161ffff1690508060000361414357506001949350505050565b600085815261012f6020526040812060018101548154919290916141679083615859565b9050801561418c57838161417d61271085615976565b614187919061598d565b101596505b505050505050919050565b6000806141a686868686612392565b905060006141b382610fac565b905060028160078111156141c9576141c96144c3565b141580156141e9575060068160078111156141e6576141e66144c3565b14155b801561420757506007816007811115614204576142046144c3565b14155b6142535760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610e6f565b600082815260fe602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906130d19084815260200190565b6000602082840312156142b557600080fd5b81356001600160e01b0319811681146118c057600080fd5b803560ff811681146142de57600080fd5b919050565b60008083601f8401126142f557600080fd5b5081356001600160401b0381111561430c57600080fd5b60208301915083602082850101111561432457600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b03811182821017156143635761436361432b565b60405290565b604051601f8201601f191681016001600160401b03811182821017156143915761439161432b565b604052919050565b60006001600160401b038211156143b2576143b261432b565b50601f01601f191660200190565b600082601f8301126143d157600080fd5b81356020830160006143ea6143e584614399565b614369565b90508281528583830111156143fe57600080fd5b82826020830137600092810160200192909252509392505050565b60008060008060008060008060e0898b03121561443557600080fd5b8835975061444560208a016142cd565b965060408901356001600160401b0381111561446057600080fd5b61446c8b828c016142e3565b90975095505060608901356001600160401b0381111561448b57600080fd5b6144978b828c016143c0565b9450506144a660808a016142cd565b979a969950949793969295929450505060a08201359160c0013590565b634e487b7160e01b600052602160045260246000fd5b60208101600283106144ed576144ed6144c3565b91905290565b60005b8381101561450e5781810151838201526020016144f6565b50506000910152565b6000815180845261452f8160208601602086016144f3565b601f01601f19169290920160200192915050565b6020815260006118c06020830184614517565b6001600160a01b0381168114611c0f57600080fd5b6000806000806080858703121561458157600080fd5b843561458c81614556565b9350602085013561459c81614556565b92506040850135915060608501356001600160401b038111156145be57600080fd5b6145ca878288016143c0565b91505092959194509250565b60006001600160401b038211156145ef576145ef61432b565b5060051b60200190565b600082601f83011261460a57600080fd5b81356146186143e5826145d6565b8082825260208201915060208360051b86010192508583111561463a57600080fd5b602085015b83811015610ef557803561465281614556565b83526020928301920161463f565b600082601f83011261467157600080fd5b813561467f6143e5826145d6565b8082825260208201915060208360051b8601019250858311156146a157600080fd5b602085015b83811015610ef55780358352602092830192016146a6565b600082601f8301126146cf57600080fd5b81356146dd6143e5826145d6565b8082825260208201915060208360051b8601019250858311156146ff57600080fd5b602085015b83811015610ef55780356001600160401b0381111561472257600080fd5b614731886020838a01016143c0565b84525060209283019201614704565b6000806000806080858703121561475657600080fd5b84356001600160401b0381111561476c57600080fd5b614778878288016145f9565b94505060208501356001600160401b0381111561479457600080fd5b6147a087828801614660565b93505060408501356001600160401b038111156147bc57600080fd5b6147c8878288016146be565b949793965093946060013593505050565b6000602082840312156147eb57600080fd5b5035919050565b600080600080600060a0868803121561480a57600080fd5b8535945061481a602087016142cd565b9350614828604087016142cd565b94979396509394606081013594506080013592915050565b60208101600883106144ed576144ed6144c3565b60008060008060008060008060e0898b03121561487057600080fd5b883561487b81614556565b975060208901356002811061488f57600080fd5b9650604089013561489f81614556565b955060608901356148af81614556565b945060808901356148bf81614556565b935060a08901356148cf81614556565b925060c08901356001600160401b038111156148ea57600080fd5b8901600080601f83018d136148fd578182fd5b5081356001600160401b03811115614913578182fd5b6020830191508c60208260051b850101111561492e57600080fd5b999c989b5096995094979396929594505050565b6000806040838503121561495557600080fd5b82359150602083013561496781614556565b809150509250929050565b6000806040838503121561498557600080fd5b82359150614995602084016142cd565b90509250929050565b6000806000806000608086880312156149b657600080fd5b853594506149c6602087016142cd565b935060408601356001600160401b038111156149e157600080fd5b6149ed888289016142e3565b90945092505060608601356001600160401b03811115614a0c57600080fd5b614a18888289016143c0565b9150509295509295909350565b600060208284031215614a3757600080fd5b81356118c081614556565b8015158114611c0f57600080fd5b80356142de81614a42565b60008060408385031215614a6e57600080fd5b8235614a7981614556565b9150602083013561496781614a42565b60008060008060608587031215614a9f57600080fd5b84359350614aaf602086016142cd565b925060408501356001600160401b03811115614aca57600080fd5b614ad6878288016142e3565b95989497509550505050565b60008060008060808587031215614af857600080fd5b84356001600160401b03811115614b0e57600080fd5b614b1a878288016145f9565b94505060208501356001600160401b03811115614b3657600080fd5b614b4287828801614660565b93505060408501356001600160401b03811115614b5e57600080fd5b614b6a878288016146be565b92505060608501356001600160401b038111156145be57600080fd5b600080600080600060a08688031215614b9e57600080fd5b85356001600160401b03811115614bb457600080fd5b614bc0888289016145f9565b95505060208601356001600160401b03811115614bdc57600080fd5b614be888828901614660565b94505060408601356001600160401b03811115614c0457600080fd5b614c10888289016146be565b93505060608601356001600160401b03811115614c2c57600080fd5b614c38888289016143c0565b925050614c47608087016142cd565b90509295509295909350565b600080600060608486031215614c6857600080fd5b8335614c7381614556565b92506020840135915060408401356001600160401b03811115614c9557600080fd5b614ca1868287016143c0565b9150509250925092565b600080600060608486031215614cc057600080fd5b8335614ccb81614556565b925060208401356001600160401b03811115614ce657600080fd5b614cf2868287016143c0565b92505060408401356001600160401b03811115614c9557600080fd5b600080600060608486031215614d2357600080fd5b8335614d2e81614556565b925060208401356001600160401b03811115614d4957600080fd5b614d55868287016143c0565b93969395505050506040919091013590565b60008060008060808587031215614d7d57600080fd5b8435614d8881614556565b935060208501356001600160401b03811115614da357600080fd5b614daf878288016143c0565b93505060408501356001600160401b03811115614dcb57600080fd5b614dd7878288016143c0565b925050614de6606086016142cd565b905092959194509250565b600080600080600060a08688031215614e0957600080fd5b8535614e1481614556565b94506020860135614e2481614556565b935060408601356001600160401b03811115614e3f57600080fd5b614e4b88828901614660565b93505060608601356001600160401b03811115614e6757600080fd5b614e7388828901614660565b92505060808601356001600160401b03811115614a0c57600080fd5b60008060008060608587031215614ea557600080fd5b8435614eb081614556565b93506020850135925060408501356001600160401b03811115614aca57600080fd5b60008060408385031215614ee557600080fd5b8235614ef081614556565b946020939093013593505050565b600080600080600060a08688031215614f1657600080fd5b8535614f2181614556565b94506020860135614f3181614556565b9350604086013592506060860135915060808601356001600160401b03811115614a0c57600080fd5b60008060408385031215614f6d57600080fd5b8235915060208301356001600160401b038116811461496757600080fd5b8183823760009101908152919050565b600181811c90821680614faf57607f821691505b602082108103614fcf57634e487b7160e01b600052602260045260246000fd5b50919050565b61ffff81168114611c0f57600080fd5b6000808335601e19843603018112614ffc57600080fd5b83016020810192503590506001600160401b0381111561501b57600080fd5b80360382131561432457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152604060208201819052810182905260006060600584901b83018101908301858360be1936839003015b8782101561516657868503605f1901845282358181126150a757600080fd5b890180356150b481614fd5565b61ffff16865260208101356150c881614fd5565b61ffff1660208701526150de6040820182614fe5565b60c060408901526150f360c08901828461502a565b9150506151036060830183614fe5565b88830360608a015261511683828461502a565b92505050608082013561512881614556565b6001600160a01b0316608088015261514260a08301614a50565b80151560a08901529150955050602093840193929092019160019190910190615088565b509298975050505050505050565b6020808252603f908201527f476f7665726e6f723a206f6e6c792061646d696e2c20676f7665726e6f72207460408201527f696d656c6f636b2c206f722070726f706f7365722063616e2063616e63656c00606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c4d57610c4d6151d1565b80516142de81614fd5565b60006152136143e584614399565b905082815283838301111561522757600080fd5b6118c08360208301846144f3565b600082601f83011261524657600080fd5b6118c083835160208501615205565b80516142de81614556565b80516142de81614a42565b60006020828403121561527d57600080fd5b81516001600160401b0381111561529357600080fd5b820160c081850312156152a557600080fd5b6152ad614341565b6152b6826151fa565b81526152c4602083016151fa565b602082015260408201516001600160401b038111156152e257600080fd5b6152ee86828501615235565b60408301525060608201516001600160401b0381111561530d57600080fd5b61531986828501615235565b60608301525061532b60808301615255565b608082015261533c60a08301615260565b60a0820152949350505050565b600081518084526020840193506020830160005b828110156153845781516001600160a01b031686526020958601959091019060010161535d565b5093949350505050565b600082825180855260208501945060208160051b8301016020850160005b838110156153de57601f198584030188526153c8838351614517565b60209889019890935091909101906001016153ac565b50909695505050505050565b6060815260006153fd6060830186615349565b828103602084015261540f818661538e565b91505060ff83166040830152949350505050565b6001600160401b038181168382160190811115610c4d57610c4d6151d1565b600081518084526020840193506020830160005b82811015615384578151865260209586019590910190600101615456565b6101008152600061548961010083018b615349565b828103602084015261549b818b615442565b9050828103604084015280895180835260208301915060208160051b84010160208c0160005b838110156154f357601f198684030185526154dd838351614517565b60209586019590935091909101906001016154c1565b50508581036060870152615507818c61538e565b935050505061552160808401886001600160401b03169052565b6001600160401b03861660a084015282810360c08401526155428186614517565b91505061555460e083018460ff169052565b9998505050505050505050565b8281526040602082015260006118bd6040830184614517565b600082601f83011261558b57600080fd5b81516155996143e5826145d6565b8082825260208201915060208360051b8601019250858311156155bb57600080fd5b602085015b83811015610ef55780518352602092830192016155c0565b600082601f8301126155e957600080fd5b81516155f76143e5826145d6565b8082825260208201915060208360051b86010192508583111561561957600080fd5b602085015b83811015610ef55780516001600160401b0381111561563c57600080fd5b8601603f8101881361564d57600080fd5b61565f88602083015160408401615205565b8452506020928301920161561e565b60008060006060848603121561568357600080fd5b83516001600160401b0381111561569957600080fd5b8401601f810186136156aa57600080fd5b80516156b86143e5826145d6565b8082825260208201915060208360051b8501019250888311156156da57600080fd5b6020840193505b828410156157055783516156f481614556565b8252602093840193909101906156e1565b8096505050505060208401516001600160401b0381111561572557600080fd5b6157318682870161557a565b92505060408401516001600160401b0381111561574d57600080fd5b614ca1868287016155d8565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b6000602082840312156157ac57600080fd5b5051919050565b60a0815260006157c660a0830188615349565b82810360208401526157d88188615442565b905082810360408401526157ec818761538e565b60608401959095525050608001529392505050565b60c08152600061581460c0830189615349565b82810360208401526158268189615442565b9050828103604084015261583a818861538e565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610c4d57610c4d6151d1565b8381526060602082015260006158856060830185614517565b9050826040830152949350505050565b60a0815260006158a860a0830188614517565b6001600160401b03871660208401526001600160401b038616604084015282810360608401526158d88186614517565b91505060ff831660808301529695505050505050565b6080815260006159016080830187615349565b82810360208401526159138187615442565b90508281036040840152615927818661538e565b91505082606083015295945050505050565b6001600160a01b0385811682528416602082015260806040820181905260009061596590830185614517565b905082606083015295945050505050565b8082028115828204841417610c4d57610c4d6151d1565b6000826159aa57634e487b7160e01b600052601260045260246000fd5b500490565b85815260018060a01b038516602082015260ff8416604082015282606082015260a060808201526000610fa160a0830184614517565b84815260ff841660208201528260408201526080606082015260006114b96080830184614517565b85815260ff8516602082015283604082015260a060608201526000615a3560a0830185614517565b8281036080840152615a478185614517565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215615a7b57600080fd5b81516118c081614a42565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f82111561341557806000526020600020601f840160051c81016020851015615af85750805b601f840160051c820191505b818110156131765760008155600101615b04565b81516001600160401b03811115615b3157615b3161432b565b615b4581615b3f8454614f9b565b84615ad1565b6020601f821160018114615b795760008315615b615750848201515b600019600385901b1c1916600184901b178455613176565b600084815260208120601f198516915b82811015615ba95787850151825560209485019460019092019101615b89565b5084821015615bc75786840151600019600387901b60f8161c191681555b50505050600190811b0190555056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765737570706f72743d627261766f2671756f72756d3d616761696e73742c666f722c6162737461696e26706172616d733d6d6f64756c6573a2646970667358221220b7740fce7ede22b259118765a09f7bf52a7b96b51a831848a33f1e666671de7664736f6c634300081a0033