608060405234801561001057600080fd5b506097805460ff191660011790556137898061002d6000396000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c806370a082311161012a578063c63d75b6116100bd578063d905777e1161008c578063e4a4e48611610071578063e4a4e486146104d4578063ef8b30f714610276578063fc0c546a146104e757600080fd5b8063d905777e1461047b578063dd62ed3e1461048e57600080fd5b8063c63d75b61461041d578063c6e6f59214610430578063ce96cb7714610443578063d4090fb81461045657600080fd5b8063a9059cbb116100f9578063a9059cbb146103e4578063b3d7f6b91461032d578063b460af94146103f7578063ba0876521461040a57600080fd5b806370a082311461038057806394bf804d146103b657806395d89b41146103c9578063a457c2d7146103d157600080fd5b806338d52e0f116101a25780634cdad506116101715780634cdad5061461032d5780636e553f65146103405780636ebc0af1146103535780636f392ce71461037357600080fd5b806338d52e0f146102b357806339509351146102f2578063402d267d14610305578063485cc9551461031857600080fd5b80630a28a477116101de5780630a28a4771461027657806318160ddd1461028957806323b872dd14610291578063313ce567146102a457600080fd5b806301e1d1141461021057806306fdde031461022b57806307a2d13a14610240578063095ea7b314610253575b600080fd5b610218610507565b6040519081526020015b60405180910390f35b61023361059f565b604051610222919061328e565b61021861024e3660046132df565b610631565b61026661026136600461331a565b6106f3565b6040519015158152602001610222565b6102186102843660046132df565b610709565b606754610218565b61026661029f366004613346565b610714565b60405160128152602001610222565b60985473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610222565b61026661030036600461331a565b6107ee565b610218610313366004613387565b610832565b61032b6103263660046133a4565b610994565b005b61021861033b3660046132df565b610e51565b61021861034e3660046133dd565b610e5c565b6099546102cd9073ffffffffffffffffffffffffffffffffffffffff1681565b6097546102669060ff1681565b61021861038e366004613387565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b6102186103c43660046133dd565b610f24565b610233611036565b6102666103df36600461331a565b611045565b6102666103f236600461331a565b611105565b610218610405366004613402565b611112565b610218610418366004613402565b6112aa565b61021861042b366004613387565b6113fb565b61021861043e3660046132df565b61145e565b610218610451366004613387565b61150f565b6097546102cd90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b610218610489366004613387565b61169c565b61021861049c3660046133a4565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b6102cd6104e23660046133a4565b611825565b6098546102cd9073ffffffffffffffffffffffffffffffffffffffff1681565b6000609760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dc82697c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059a9190613444565b905090565b6060606880546105ae9061345d565b80601f01602080910402602001604051908101604052809291908181526020018280546105da9061345d565b80156106275780601f106105fc57610100808354040283529160200191610627565b820191906000526020600020905b81548152906001019060200180831161060a57829003601f168201915b5050505050905090565b6097546099546040517f9290d42700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152600092670de0b6b3a7640000926101009091041690639290d42790602401602060405180830381865afa1580156106b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d99190613444565b6106e390846134e0565b6106ed919061351d565b92915050565b60006107003384846119b0565b50600192915050565b60006106ed8261145e565b6000610721848484611b30565b73ffffffffffffffffffffffffffffffffffffffff84166000908152606660209081526040808320338452909152902054828110156107cd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6107e185336107dc8685613558565b6119b0565b60019150505b9392505050565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916107009185906107dc90869061356f565b600080609760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663a4d66daf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cb9190613444565b905060008273ffffffffffffffffffffffffffffffffffffffff1663dc82697c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561091a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093e9190613444565b90508161096f57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff949350505050565b81811061098157506000949350505050565b61098b8183613558565b95945050505050565b600054610100900460ff16806109ad575060005460ff16155b610a1f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c4565b600054610100900460ff16158015610a5e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b610a66611d9f565b610bce8273ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ab4573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610afa91908101906135b6565b604051602001610b0a9190613676565b6040516020818303038152906040528373ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610b64573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610baa91908101906135b6565b604051602001610bba91906136b7565b604051602081830303815290604052611ea3565b609780547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff86811682029290921792839055609980547fffffffffffffffffffffffff000000000000000000000000000000000000000016868416179055604080517ffc0c546a0000000000000000000000000000000000000000000000000000000081529051919093049091169163fc0c546a9160048083019260209291908290030181865afa158015610ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc491906136f8565b609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055609754604080517f44966ba0000000000000000000000000000000000000000000000000000000008152905185841693610100909304909216916344966ba0916004808201926020929091908290030181865afa158015610d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8e91906136f8565b609980547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff92831693909314740100000000000000000000000000000000000000000292909217909155609854610e1d9116847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611f7f565b8015610e4c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b505050565b60006106ed82610631565b600060026001541415610eb15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c4565b6002600155610ec1838333612165565b604080518381526020810183905292955090925073ffffffffffffffffffffffffffffffffffffffff84169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a36001805592915050565b600060026001541415610f795760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c4565b600260015582610fb5576040517fcbca5aa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610fc084610e51565b9050600080610fd0838633612165565b604080518381526020810183905292945090925073ffffffffffffffffffffffffffffffffffffffff87169133917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a35060018055949350505050565b6060606980546105ae9061345d565b33600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156110ec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016107c4565b6110fb33856107dc8685613558565b5060019392505050565b6000610700338484611b30565b6000600260015414156111675760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c4565b6002600155836111a3576040517fcbca5aa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85146111da576111d585610709565b611201565b73ffffffffffffffffffffffffffffffffffffffff83166000908152606560205260409020545b9050600080611211838787612433565b915091508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051611294929190918252602082015260400190565b60405180910390a4600180559695505050505050565b6000600260015414156112ff5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c4565b60026001557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8414156113555773ffffffffffffffffffffffffffffffffffffffff821660009081526065602052604090205493505b600080611363868686612433565b915091508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db85856040516113e6929190918252602082015260400190565b60405180910390a45060018055949350505050565b60008061140783610832565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81141561145957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b6107e7815b6097546099546040517f9290d42700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152600092610100900490911690639290d42790602401602060405180830381865afa1580156114d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fd9190613444565b6106e3670de0b6b3a7640000846134e0565b609954600090819074010000000000000000000000000000000000000000900460ff166115cc57609760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639d3ef4b26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c79190613715565b61165d565b609760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166355c707016040518163ffffffff1660e01b8152600401602060405180830381865afa158015611639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165d9190613715565b90508061166d5750600092915050565b6107e761024e8473ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b609954600090819074010000000000000000000000000000000000000000900460ff1661175957609760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639d3ef4b26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117549190613715565b6117ea565b609760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166355c707016040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ea9190613715565b9050806117fa5750600092915050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152606560205260409020546107e7565b60975460009060ff1661187a5760405162461bcd60e51b815260206004820152600660248201527f21636c6f6e65000000000000000000000000000000000000000000000000000060448201526064016107c4565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085811b8216602084015284901b1660348201526000906048016040516020818303038152906040528051906020012090506118db30826126fe565b6040517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015285811660248301529193509083169063485cc95590604401600060405180830381600087803b15801561195057600080fd5b505af1158015611964573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff851692507fbe2f3d28fdeb5839123d65fd47ec2f5915c715d2b527b9e229123706fdecfc859150600090a25092915050565b73ffffffffffffffffffffffffffffffffffffffff8316611a385760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016107c4565b73ffffffffffffffffffffffffffffffffffffffff8216611ac15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016107c4565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611bb95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016107c4565b73ffffffffffffffffffffffffffffffffffffffff8216611c425760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016107c4565b73ffffffffffffffffffffffffffffffffffffffff831660009081526065602052604090205481811015611cde5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016107c4565b611ce88282613558565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152606560205260408082209390935590851681529081208054849290611d2b90849061356f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d9191815260200190565b60405180910390a350505050565b600054610100900460ff1680611db8575060005460ff16155b611e2a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c4565b600054610100900460ff16158015611e6957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b611e716127c2565b8015611ea057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b600054610100900460ff1680611ebc575060005460ff16155b611f2e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c4565b600054610100900460ff16158015611f6d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b611f756128c1565b610e1d83836129bb565b80158061201f57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201d9190613444565b155b6120915760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016107c4565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610e4c9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612ae0565b609754609854600091829173ffffffffffffffffffffffffffffffffffffffff6101009092048216911661219b8186308a612bd2565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015612208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222c9190613444565b60995490915074010000000000000000000000000000000000000000900460ff16156122ea576040517fb450dfce0000000000000000000000000000000000000000000000000000000081526004810189905273ffffffffffffffffffffffffffffffffffffffff84169063b450dfce906024016020604051808303816000875af11580156122bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e39190613444565b935061237e565b6040517fe70875ad0000000000000000000000000000000000000000000000000000000081526004810189905273ffffffffffffffffffffffffffffffffffffffff84169063e70875ad906024016020604051808303816000875af1158015612357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237b9190613444565b93505b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381865afa1580156123eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240f9190613444565b905061241b8183613558565b95506124278886612c36565b50505050935093915050565b6097546099546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600092839273ffffffffffffffffffffffffffffffffffffffff610100909204821692911690839082906370a0823190602401602060405180830381865afa1580156124b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d99190613444565b60995490915074010000000000000000000000000000000000000000900460ff1615612597576040517f9af648540000000000000000000000000000000000000000000000000000000081526004810189905273ffffffffffffffffffffffffffffffffffffffff841690639af64854906024016020604051808303816000875af115801561256c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125909190613444565b945061262b565b6040517f99abe5e80000000000000000000000000000000000000000000000000000000081526004810189905273ffffffffffffffffffffffffffffffffffffffff8416906399abe5e8906024016020604051808303816000875af1158015612604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126289190613444565b94505b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015612695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b99190613444565b6126c39082613558565b93506126cf8685612d3c565b6098546126f39073ffffffffffffffffffffffffffffffffffffffff168887612e1d565b505050935093915050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f591505073ffffffffffffffffffffffffffffffffffffffff81166106ed5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c656400000000000000000060448201526064016107c4565b600054610100900460ff16806127db575060005460ff16155b61284d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c4565b600054610100900460ff1615801561288c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b600180558015611ea057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff16806128da575060005460ff16155b61294c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c4565b600054610100900460ff16158015611e7157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790558015611ea057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff16806129d4575060005460ff16155b612a465760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c4565b600054610100900460ff16158015612a8557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b8251612a989060689060208601906131c9565b508151612aac9060699060208501906131c9565b508015610e4c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b6000612b42826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612e739092919063ffffffff16565b805190915015610e4c5780806020019051810190612b609190613715565b610e4c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107c4565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052612c309085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016120e3565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216612c995760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107c4565b8060676000828254612cab919061356f565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526065602052604081208054839290612ce590849061356f565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff82163314612e0f5773ffffffffffffffffffffffffffffffffffffffff8216600090815260666020908152604080832033845290915290205481811015612e005760405162461bcd60e51b815260206004820152602160248201527f74773a206275726e20616d6f756e74206578636565647320616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016107c4565b612e0d83338484036119b0565b505b612e198282612e8a565b5050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610e4c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016120e3565b6060612e828484600085613044565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff8216612f135760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016107c4565b73ffffffffffffffffffffffffffffffffffffffff821660009081526065602052604090205481811015612faf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016107c4565b612fb98282613558565b73ffffffffffffffffffffffffffffffffffffffff841660009081526065602052604081209190915560678054849290612ff4908490613558565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611b23565b6060824710156130bc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016107c4565b843b61310a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107c4565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516131339190613737565b60006040518083038185875af1925050503d8060008114613170576040519150601f19603f3d011682016040523d82523d6000602084013e613175565b606091505b5091509150613185828286613190565b979650505050505050565b6060831561319f5750816107e7565b8251156131af5782518084602001fd5b8160405162461bcd60e51b81526004016107c4919061328e565b8280546131d59061345d565b90600052602060002090601f0160209004810192826131f7576000855561323d565b82601f1061321057805160ff191683800117855561323d565b8280016001018555821561323d579182015b8281111561323d578251825591602001919060010190613222565b5061324992915061324d565b5090565b5b80821115613249576000815560010161324e565b60005b8381101561327d578181015183820152602001613265565b83811115612c305750506000910152565b60208152600082518060208401526132ad816040850160208701613262565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156132f157600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114611ea057600080fd5b6000806040838503121561332d57600080fd5b8235613338816132f8565b946020939093013593505050565b60008060006060848603121561335b57600080fd5b8335613366816132f8565b92506020840135613376816132f8565b929592945050506040919091013590565b60006020828403121561339957600080fd5b81356107e7816132f8565b600080604083850312156133b757600080fd5b82356133c2816132f8565b915060208301356133d2816132f8565b809150509250929050565b600080604083850312156133f057600080fd5b8235915060208301356133d2816132f8565b60008060006060848603121561341757600080fd5b833592506020840135613429816132f8565b91506040840135613439816132f8565b809150509250925092565b60006020828403121561345657600080fd5b5051919050565b600181811c9082168061347157607f821691505b602082108114156134ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613518576135186134b1565b500290565b600082613553577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008282101561356a5761356a6134b1565b500390565b60008219821115613582576135826134b1565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156135c857600080fd5b815167ffffffffffffffff808211156135e057600080fd5b818401915084601f8301126135f457600080fd5b81518181111561360657613606613587565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561364c5761364c613587565b8160405282815287602084870101111561366557600080fd5b613185836020830160208801613262565b60008251613688818460208701613262565b7f3436323641646170746572000000000000000000000000000000000000000000920191825250600b01919050565b600082516136c9818460208701613262565b7f3436323600000000000000000000000000000000000000000000000000000000920191825250600401919050565b60006020828403121561370a57600080fd5b81516107e7816132f8565b60006020828403121561372757600080fd5b815180151581146107e757600080fd5b60008251613749818460208701613262565b919091019291505056fea26469706673582212201c8ad5e05d3760b33bd1e33ba487e0690fdf557ae061dba68d0f66d3afc6af0d64736f6c634300080a0033