0x60806040523480156200001157600080fd5b506040516200119c3803806200119c833981016040819052620000349162000146565b6000805463ffffffff191663ffffffff85161781555b8251811015620000c15760018060008584815181106200007a57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000b88162000242565b9150506200004a565b50815160028190558111156200011d5760405162461bcd60e51b815260206004820152601560248201527f4552525f494e56414c49445f5448524553484f4c440000000000000000000000604482015260640160405180910390fd5b60035550620002809050565b80516001600160a01b03811681146200014157600080fd5b919050565b6000806000606084860312156200015b578283fd5b835163ffffffff811681146200016f578384fd5b602085810151919450906001600160401b03808211156200018e578485fd5b818701915087601f830112620001a2578485fd5b815181811115620001b757620001b76200026a565b838102604051601f19603f83011681018181108582111715620001de57620001de6200026a565b604052828152858101935084860182860187018c1015620001fd578889fd5b8895505b838610156200022a57620002158162000129565b85526001959095019493860193860162000201565b50809750505050505050604084015190509250925092565b60006000198214156200026357634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b610f0c80620002906000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063935d91dd1161008c578063da8bd3fe11610066578063da8bd3fe146101f4578063f7ca802314610207578063fa52c7d81461021c578063faf55b5c1461024f576100ea565b8063935d91dd146101b35780639a8a0592146101c6578063affed0e0146101eb576100ea565b80635938c87d116100c85780635938c87d146101395780635a0f88301461015057806371aca57e1461016557806374892a721461018c576100ea565b80633c0e39bf146100ef57806342cde4e81461011957806351f61efa14610122575b600080fd5b6101066c14d15517d512149154d213d311609a1b81565b6040519081526020015b60405180910390f35b61010660035481565b6101066c29a2aa2fab20a624a220aa27a960991b81565b6101066c535741505045525f434c41494d60981b81565b61016361015e366004610d7d565b610276565b005b6101067f56414c49444154455f58595f58434841494e5f4944454e54494649455200000081565b6101067f4c4f434b5f434c4f53455f535741505f414e445f524546554e4400000000000081565b6101636101c1366004610dc2565b6103bf565b6000546101d69063ffffffff1681565b60405163ffffffff9091168152602001610110565b61010660045481565b610163610202366004610d11565b610567565b6101066a42415443485f434c41494d60a81b81565b61023f61022a366004610cf0565b60016020526000908152604090205460ff1681565b6040519015158152602001610110565b6101067f56414c49444154455f535741505f4944454e544946494552000000000000000081565b600354815110156102a25760405162461bcd60e51b815260040161029990610e10565b60405180910390fd5b6000805b6003548110156103b95760006102ec8483815181106102d557634e487b7160e01b600052603260045260246000fd5b60200260200101518661080190919063ffffffff16565b6001600160a01b03811660009081526001602052604090205490915060ff1661034b5760405162461bcd60e51b815260206004820152601160248201527022a9292fa727aa2fab20a624a220aa27a960791b6044820152606401610299565b826001600160a01b0316816001600160a01b0316116103a55760405162461bcd60e51b815260206004820152601660248201527522a9292faba927a723afa9a4a3a722a92fa7a92222a960511b6044820152606401610299565b9150806103b181610e8f565b9150506102a6565b50505050565b600354815110156103e25760405162461bcd60e51b815260040161029990610e10565b60045482146104275760405162461bcd60e51b81526020600482015260116024820152704552525f494e56414c49445f4e4f4e434560781b6044820152606401610299565b6000831161046f5760405162461bcd60e51b815260206004820152601560248201527411549497d253959053125117d512149154d213d311605a1b6044820152606401610299565b6002548311156104b95760405162461bcd60e51b815260206004820152601560248201527411549497d253959053125117d512149154d213d311605a1b6044820152606401610299565b60008054604080516c14d15517d512149154d213d311609a1b60208201523060601b6bffffffffffffffffffffffff19169181019190915260e09190911b6001600160e01b03191660548201526058810185905260788101849052609801604051602081830303815290604052805190602001209050600061053a82610825565b90506105468184610276565b60038590556004805490600061055b83610e8f565b91905055505050505050565b6001600160a01b0384166105b55760405162461bcd60e51b815260206004820152601560248201527422a9292fa4a72b20a624a22fab20a624a220aa27a960591b6044820152606401610299565b600354815110156105d85760405162461bcd60e51b815260040161029990610e10565b600454821461061d5760405162461bcd60e51b81526020600482015260116024820152704552525f494e56414c49445f4e4f4e434560781b6044820152606401610299565b6001600160a01b03841660009081526001602052604090205460ff161515831515141561068c5760405162461bcd60e51b815260206004820152601a60248201527f4552525f4f5045524154494f4e5f544f5f56414c494441544f520000000000006044820152606401610299565b60008054604080516c29a2aa2fab20a624a220aa27a960991b602082015230606090811b6bffffffffffffffffffffffff199081169383019390935260e09390931b6001600160e01b03191660548201529187901b16605882015284151560f81b606c820152606d8101849052608d01604051602081830303815290604052805190602001209050600061071f82610825565b905061072b8184610276565b6001600160a01b03861660009081526001602052604090205460ff16156107a8576002805490600061075c83610e78565b90915550506001600160a01b0386166000908152600160205260409020805460ff1916905560035460025410156107a3576003805490600061079d83610e78565b91905055505b6107e4565b600280549060006107b883610e8f565b90915550506001600160a01b0386166000908152600160208190526040909120805460ff191690911790555b600480549060006107f483610e8f565b9190505550505050505050565b60008060006108108585610879565b9150915061081d816108e9565b509392505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c016040516020818303038152906040528051906020012090505b919050565b6000808251604114156108b05760208301516040840151606085015160001a6108a487828585610aef565b945094505050506108e2565b8251604014156108da57602083015160408401516108cf868383610bdc565b9350935050506108e2565b506000905060025b9250929050565b600081600481111561090b57634e487b7160e01b600052602160045260246000fd5b141561091657610aec565b600181600481111561093857634e487b7160e01b600052602160045260246000fd5b14156109865760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610299565b60028160048111156109a857634e487b7160e01b600052602160045260246000fd5b14156109f65760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610299565b6003816004811115610a1857634e487b7160e01b600052602160045260246000fd5b1415610a715760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610299565b6004816004811115610a9357634e487b7160e01b600052602160045260246000fd5b1415610aec5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610299565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b265750600090506003610bd3565b8460ff16601b14158015610b3e57508460ff16601c14155b15610b4f5750600090506004610bd3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610ba3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610bcc57600060019250925050610bd3565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01610bfd87828885610aef565b935093505050935093915050565b80356001600160a01b038116811461087457600080fd5b6000601f8381840112610c33578182fd5b8235602067ffffffffffffffff80831115610c5057610c50610ec0565b610c5d8283850201610e47565b83815282810190878401875b86811015610ce15781358a018b603f820112610c8357898afd5b86810135604087821115610c9957610c99610ec0565b610caa828c01601f19168a01610e47565b8281528e82848601011115610cbd578c8dfd5b828285018b83013791820189018c9052508552509285019290850190600101610c69565b50909998505050505050505050565b600060208284031215610d01578081fd5b610d0a82610c0b565b9392505050565b60008060008060808587031215610d26578283fd5b610d2f85610c0b565b935060208501358015158114610d43578384fd5b925060408501359150606085013567ffffffffffffffff811115610d65578182fd5b610d7187828801610c22565b91505092959194509250565b60008060408385031215610d8f578182fd5b82359150602083013567ffffffffffffffff811115610dac578182fd5b610db885828601610c22565b9150509250929050565b600080600060608486031215610dd6578283fd5b8335925060208401359150604084013567ffffffffffffffff811115610dfa578182fd5b610e0686828701610c22565b9150509250925092565b60208082526019908201527f4552525f4e4f545f454e4f5547485f5349474e41545552455300000000000000604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610e7057610e70610ec0565b604052919050565b600081610e8757610e87610eaa565b506000190190565b6000600019821415610ea357610ea3610eaa565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122067cfd024213e1dbae904fba1d07705b49a55feb743583782defa070dcf43748064736f6c634300080200330000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000b7702af3cffa4c5bda7ed48b51351dd437343c1b0000000000000000000000000589312aaefb4155d792e4832a00f8e28222bae4
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063935d91dd1161008c578063da8bd3fe11610066578063da8bd3fe146101f4578063f7ca802314610207578063fa52c7d81461021c578063faf55b5c1461024f576100ea565b8063935d91dd146101b35780639a8a0592146101c6578063affed0e0146101eb576100ea565b80635938c87d116100c85780635938c87d146101395780635a0f88301461015057806371aca57e1461016557806374892a721461018c576100ea565b80633c0e39bf146100ef57806342cde4e81461011957806351f61efa14610122575b600080fd5b6101066c14d15517d512149154d213d311609a1b81565b6040519081526020015b60405180910390f35b61010660035481565b6101066c29a2aa2fab20a624a220aa27a960991b81565b6101066c535741505045525f434c41494d60981b81565b61016361015e366004610d7d565b610276565b005b6101067f56414c49444154455f58595f58434841494e5f4944454e54494649455200000081565b6101067f4c4f434b5f434c4f53455f535741505f414e445f524546554e4400000000000081565b6101636101c1366004610dc2565b6103bf565b6000546101d69063ffffffff1681565b60405163ffffffff9091168152602001610110565b61010660045481565b610163610202366004610d11565b610567565b6101066a42415443485f434c41494d60a81b81565b61023f61022a366004610cf0565b60016020526000908152604090205460ff1681565b6040519015158152602001610110565b6101067f56414c49444154455f535741505f4944454e544946494552000000000000000081565b600354815110156102a25760405162461bcd60e51b815260040161029990610e10565b60405180910390fd5b6000805b6003548110156103b95760006102ec8483815181106102d557634e487b7160e01b600052603260045260246000fd5b60200260200101518661080190919063ffffffff16565b6001600160a01b03811660009081526001602052604090205490915060ff1661034b5760405162461bcd60e51b815260206004820152601160248201527022a9292fa727aa2fab20a624a220aa27a960791b6044820152606401610299565b826001600160a01b0316816001600160a01b0316116103a55760405162461bcd60e51b815260206004820152601660248201527522a9292faba927a723afa9a4a3a722a92fa7a92222a960511b6044820152606401610299565b9150806103b181610e8f565b9150506102a6565b50505050565b600354815110156103e25760405162461bcd60e51b815260040161029990610e10565b60045482146104275760405162461bcd60e51b81526020600482015260116024820152704552525f494e56414c49445f4e4f4e434560781b6044820152606401610299565b6000831161046f5760405162461bcd60e51b815260206004820152601560248201527411549497d253959053125117d512149154d213d311605a1b6044820152606401610299565b6002548311156104b95760405162461bcd60e51b815260206004820152601560248201527411549497d253959053125117d512149154d213d311605a1b6044820152606401610299565b60008054604080516c14d15517d512149154d213d311609a1b60208201523060601b6bffffffffffffffffffffffff19169181019190915260e09190911b6001600160e01b03191660548201526058810185905260788101849052609801604051602081830303815290604052805190602001209050600061053a82610825565b90506105468184610276565b60038590556004805490600061055b83610e8f565b91905055505050505050565b6001600160a01b0384166105b55760405162461bcd60e51b815260206004820152601560248201527422a9292fa4a72b20a624a22fab20a624a220aa27a960591b6044820152606401610299565b600354815110156105d85760405162461bcd60e51b815260040161029990610e10565b600454821461061d5760405162461bcd60e51b81526020600482015260116024820152704552525f494e56414c49445f4e4f4e434560781b6044820152606401610299565b6001600160a01b03841660009081526001602052604090205460ff161515831515141561068c5760405162461bcd60e51b815260206004820152601a60248201527f4552525f4f5045524154494f4e5f544f5f56414c494441544f520000000000006044820152606401610299565b60008054604080516c29a2aa2fab20a624a220aa27a960991b602082015230606090811b6bffffffffffffffffffffffff199081169383019390935260e09390931b6001600160e01b03191660548201529187901b16605882015284151560f81b606c820152606d8101849052608d01604051602081830303815290604052805190602001209050600061071f82610825565b905061072b8184610276565b6001600160a01b03861660009081526001602052604090205460ff16156107a8576002805490600061075c83610e78565b90915550506001600160a01b0386166000908152600160205260409020805460ff1916905560035460025410156107a3576003805490600061079d83610e78565b91905055505b6107e4565b600280549060006107b883610e8f565b90915550506001600160a01b0386166000908152600160208190526040909120805460ff191690911790555b600480549060006107f483610e8f565b9190505550505050505050565b60008060006108108585610879565b9150915061081d816108e9565b509392505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c016040516020818303038152906040528051906020012090505b919050565b6000808251604114156108b05760208301516040840151606085015160001a6108a487828585610aef565b945094505050506108e2565b8251604014156108da57602083015160408401516108cf868383610bdc565b9350935050506108e2565b506000905060025b9250929050565b600081600481111561090b57634e487b7160e01b600052602160045260246000fd5b141561091657610aec565b600181600481111561093857634e487b7160e01b600052602160045260246000fd5b14156109865760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610299565b60028160048111156109a857634e487b7160e01b600052602160045260246000fd5b14156109f65760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610299565b6003816004811115610a1857634e487b7160e01b600052602160045260246000fd5b1415610a715760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610299565b6004816004811115610a9357634e487b7160e01b600052602160045260246000fd5b1415610aec5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610299565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b265750600090506003610bd3565b8460ff16601b14158015610b3e57508460ff16601c14155b15610b4f5750600090506004610bd3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610ba3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610bcc57600060019250925050610bd3565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01610bfd87828885610aef565b935093505050935093915050565b80356001600160a01b038116811461087457600080fd5b6000601f8381840112610c33578182fd5b8235602067ffffffffffffffff80831115610c5057610c50610ec0565b610c5d8283850201610e47565b83815282810190878401875b86811015610ce15781358a018b603f820112610c8357898afd5b86810135604087821115610c9957610c99610ec0565b610caa828c01601f19168a01610e47565b8281528e82848601011115610cbd578c8dfd5b828285018b83013791820189018c9052508552509285019290850190600101610c69565b50909998505050505050505050565b600060208284031215610d01578081fd5b610d0a82610c0b565b9392505050565b60008060008060808587031215610d26578283fd5b610d2f85610c0b565b935060208501358015158114610d43578384fd5b925060408501359150606085013567ffffffffffffffff811115610d65578182fd5b610d7187828801610c22565b91505092959194509250565b60008060408385031215610d8f578182fd5b82359150602083013567ffffffffffffffff811115610dac578182fd5b610db885828601610c22565b9150509250929050565b600080600060608486031215610dd6578283fd5b8335925060208401359150604084013567ffffffffffffffff811115610dfa578182fd5b610e0686828701610c22565b9150509250925092565b60208082526019908201527f4552525f4e4f545f454e4f5547485f5349474e41545552455300000000000000604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610e7057610e70610ec0565b604052919050565b600081610e8757610e87610eaa565b506000190190565b6000600019821415610ea357610ea3610eaa565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122067cfd024213e1dbae904fba1d07705b49a55feb743583782defa070dcf43748064736f6c63430008020033