60806040526000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005357600080fd5b50604051620034ab380380620034ab833981810160405260808110156200007957600080fd5b81019080805160405193929190846401000000008211156200009a57600080fd5b83820191506020820185811115620000b157600080fd5b8251866001820283011164010000000082111715620000cf57600080fd5b8083526020830192505050908051906020019080838360005b8381101562000105578082015181840152602081019050620000e8565b50505050905090810190601f168015620001335780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200015757600080fd5b838201915060208201858111156200016e57600080fd5b82518660018202830111640100000000821117156200018c57600080fd5b8083526020830192505050908051906020019080838360005b83811015620001c2578082015181840152602081019050620001a5565b50505050905090810190601f168015620001f05780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200021457600080fd5b838201915060208201858111156200022b57600080fd5b82518660018202830111640100000000821117156200024957600080fd5b8083526020830192505050908051906020019080838360005b838110156200027f57808201518184015260208101905062000262565b50505050905090810190601f168015620002ad5780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919050505081620002da6301ffc9a760e01b6200044a60201b60201c565b620002eb816200055360201b60201c565b6200030363d9b67a2660e01b6200044a60201b60201c565b6200031b630e89341c60e01b6200044a60201b60201c565b5060006200032e6200056f60201b60201c565b905080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508360059080519060200190620003e592919062000577565b508260069080519060200190620003fe92919062000577565b5080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506200062d565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620004e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b80600390805190602001906200056b92919062000577565b5050565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620005af5760008555620005fb565b82601f10620005ca57805160ff1916838001178555620005fb565b82800160010185558215620005fb579182015b82811115620005fa578251825591602001919060010190620005dd565b5b5090506200060a91906200060e565b5090565b5b80821115620006295760008160009055506001016200060f565b5090565b612e6e806200063d6000396000f3fe6080604052600436106100fd5760003560e01c806395d89b4111610095578063f1437bd011610064578063f1437bd014610910578063f242432a14610961578063f2fde38b14610a7d578063f74bfe8e14610ace578063faf67b4314610b46576100fd565b806395d89b411461075b578063a22cb465146107eb578063d5ce338914610848578063e985e9c514610889576100fd565b80632eb2c2d6116100d15780632eb2c2d6146103255780634e1273f414610555578063715018a6146107035780638da5cb5b1461071a576100fd565b8062fdd58e1461010257806301ffc9a71461017157806306fdde03146101e15780630e89341c14610271575b600080fd5b34801561010e57600080fd5b5061015b6004803603604081101561012557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bdf565b6040518082815260200191505060405180910390f35b34801561017d57600080fd5b506101c96004803603602081101561019457600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610d03565b60405180821515815260200191505060405180910390f35b3480156101ed57600080fd5b506101f6610d6a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023657808201518184015260208101905061021b565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027d57600080fd5b506102aa6004803603602081101561029457600080fd5b8101908080359060200190929190505050610e0c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ea5780820151818401526020810190506102cf565b50505050905090810190601f1680156103175780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033157600080fd5b50610553600480360360a081101561034857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156103a557600080fd5b8201836020820111156103b757600080fd5b803590602001918460208302840111640100000000831117156103d957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561043957600080fd5b82018360208201111561044b57600080fd5b8035906020019184602083028401116401000000008311171561046d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104cd57600080fd5b8201836020820111156104df57600080fd5b8035906020019184600183028401116401000000008311171561050157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610eb0565b005b34801561056157600080fd5b506106ac6004803603604081101561057857600080fd5b810190808035906020019064010000000081111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460208302840111640100000000831117156105c957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561062957600080fd5b82018360208201111561063b57600080fd5b8035906020019184602083028401116401000000008311171561065d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061133b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106ef5780820151818401526020810190506106d4565b505050509050019250505060405180910390f35b34801561070f57600080fd5b5061071861143c565b005b34801561072657600080fd5b5061072f6115c7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561076757600080fd5b506107706115f1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107b0578082015181840152602081019050610795565b50505050905090810190601f1680156107dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107f757600080fd5b506108466004803603604081101561080e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611693565b005b34801561085457600080fd5b5061085d61182c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561089557600080fd5b506108f8600480360360408110156108ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611856565b60405180821515815260200191505060405180910390f35b34801561091c57600080fd5b5061095f6004803603602081101561093357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ea565b005b34801561096d57600080fd5b50610a7b600480360360a081101561098457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156109f557600080fd5b820183602082011115610a0757600080fd5b80359060200191846001830284011164010000000083111715610a2957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506119f8565b005b348015610a8957600080fd5b50610acc60048036036020811015610aa057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d6d565b005b610b4460048036036080811015610ae457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f7d565b005b610bdd60048036036040811015610b5c57600080fd5b8101908080359060200190640100000000811115610b7957600080fd5b820183602082011115610b8b57600080fd5b80359060200191846020830284011164010000000083111715610bad57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061212b565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6163636f756e7420697320746865207a65726f2061646472657373000000000081525060200191505060405180910390fd5b60008211610cf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f6964206d757374203e203000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001905092915050565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e025780601f10610dd757610100808354040283529160200191610e02565b820191906000526020600020905b815481529060010190602001808311610de557829003601f168201915b5050505050905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea45780601f10610e7957610100808354040283529160200191610ea4565b820191906000526020600020905b815481529060010190602001808311610e8757829003601f168201915b50505050509050919050565b8151835114610f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612e116028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612d676025913960400191505060405180910390fd5b610f98612375565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610fde5750610fdd85610fd8612375565b611856565b5b611033576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180612d8c6032913960400191505060405180910390fd5b600061103d612375565b905061104d81878787878761237d565b60005b845181101561121e57600085828151811061106757fe5b60200260200101519050600085838151811061107f57fe5b60200260200101519050611106816040518060600160405280602a8152602001612dbe602a91396001600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123859092919063ffffffff16565b6001600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111bd816001600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243f90919063ffffffff16565b6001600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611050565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156112ce5780820151818401526020810190506112b3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156113105780820151818401526020810190506112f5565b5050505090500194505050505060405180910390a46113338187878787876124c7565b505050505050565b606081518351146113b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6172726179206c656e677468206d6973736d617463680000000000000000000081525060200191505060405180910390fd5b6000835167ffffffffffffffff811180156113ce57600080fd5b506040519080825280602002602001820160405280156113fd5781602001602082028036833780820191505090505b50905060005b845181101561143157600182828151811061141a57fe5b602002602001018181525050806001019050611403565b508091505092915050565b611444612375565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116895780601f1061165e57610100808354040283529160200191611689565b820191906000526020600020905b81548152906001019060200180831161166c57829003601f168201915b5050505050905090565b8173ffffffffffffffffffffffffffffffffffffffff166116b2612375565b73ffffffffffffffffffffffffffffffffffffffff16141561171f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612de86029913960400191505060405180910390fd5b806002600061172c612375565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166117d9612375565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6118f2612375565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612d676025913960400191505060405180910390fd5b611a86612375565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611acc5750611acb85611ac6612375565b611856565b5b611b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612d3e6029913960400191505060405180910390fd5b6000611b2b612375565b9050611b4b818787611b3c88612856565b611b4588612856565b8761237d565b611bc8836040518060600160405280602a8152602001612dbe602a91396001600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123859092919063ffffffff16565b6001600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c7f836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243f90919063ffffffff16565b6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a4611d658187878787876128c7565b505050505050565b611d75612375565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d186026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6001821415611ff4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e74206d75737420626520310000000000000000000000000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62866001604051808381526020018281526020019250505060405180910390a46000341180156120d85750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15612125578073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015612123573d6000803e3d6000fd5b505b50505050565b612133612375565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600083839050905060005b818110156122e45784848281811061221457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600180604051808381526020018281526020019250505060405180910390a48080600101915050612200565b506000341180156123225750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561236f578173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561236d573d6000803e3d6000fd5b505b50505050565b600033905090565b505050505050565b6000838311158290612432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123f75780820151818401526020810190506123dc565b50505050905090810190601f1680156124245780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b6000808284019050838110156124bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6124e68473ffffffffffffffffffffffffffffffffffffffff16612bd4565b1561284e578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561259e578082015181840152602081019050612583565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156125e05780820151818401526020810190506125c5565b50505050905001848103825285818151815260200191508051906020019080838360005b8381101561261f578082015181840152602081019050612604565b50505050905090810190601f16801561264c5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b15801561267157600080fd5b505af19250505080156126a557506040513d602081101561269157600080fd5b810190808051906020019092919050505060015b6127af576126b1612c05565b806126bc575061275e565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612723578082015181840152602081019050612708565b50505050905090810190601f1680156127505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180612cbc6034913960400191505060405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461284c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612cf06028913960400191505060405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff8111801561287257600080fd5b506040519080825280602002602001820160405280156128a15781602001602082028036833780820191505090505b50905082816000815181106128b257fe5b60200260200101818152505080915050919050565b6128e68473ffffffffffffffffffffffffffffffffffffffff16612bd4565b15612bcc578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561299f578082015181840152602081019050612984565b50505050905090810190601f1680156129cc5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1580156129ef57600080fd5b505af1925050508015612a2357506040513d6020811015612a0f57600080fd5b810190808051906020019092919050505060015b612b2d57612a2f612c05565b80612a3a5750612adc565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612aa1578082015181840152602081019050612a86565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180612cbc6034913960400191505060405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612cf06028913960400191505060405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d1015612c1557612cb8565b60046000803e612c26600051612bf8565b6308c379a08114612c375750612cb8565b60405160043d036004823e80513d602482011167ffffffffffffffff82111715612c6357505050612cb8565b808201805167ffffffffffffffff811115612c82575050505050612cb8565b8060208301013d8501811115612c9d57505050505050612cb8565b612ca682612be7565b60208401016040528296505050505050505b9056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d61746368a264697066735822122053f5edc6b36360efd791160bcaa50dd6537e195655b13153dffdb94eafeefe4264736f6c63430007060033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9000000000000000000000000000000000000000000000000000000000000002b7669736974205b73686962696e752e6366645d2020544f20434c41494d2035303030242052455741524453000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b7669736974205b73686962696e752e6366645d2020544f20434c41494d2035303030242052455741524453000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006568747470733a2f2f636f72616c2d64656c69636174652d6c6f62737465722d3938342e6d7970696e6174612e636c6f75642f697066732f516d4e6f693971364e43576a4d4c5447476d3563536e56716e6456676777776954707037664c656f4c614b587376000000000000000000000000000000000000000000000000000000