0x608060405234801561001057600080fd5b506004361061011d5760003560e01c806306fdde0314610122578063095ea7b31461014057806318160ddd1461016357806323b872dd14610175578063313ce567146101885780633644e51514610197578063395093511461019f5780633a46b1a8146101b257806342966c68146101c5578063587cde1e146101da5780635c19a95c146102055780636fcfff451461021857806370a08231146102405780637ecebe00146102535780638e539e8c1461026657806395d89b41146102795780639ab24eb014610281578063a457c2d714610294578063a9059cbb146102a7578063c3cda520146102ba578063d505accf146102cd578063dd62ed3e146102e0578063f1127ed8146102f3575b600080fd5b61012a610330565b604051610137919061192b565b60405180910390f35b61015361014e366004611995565b6103c2565b6040519015158152602001610137565b6002545b604051908152602001610137565b6101536101833660046119bf565b6103dc565b60405160128152602001610137565b610167610400565b6101536101ad366004611995565b61040f565b6101676101c0366004611995565b610431565b6101d86101d33660046119fb565b610484565b005b6101ed6101e8366004611a14565b610491565b6040516001600160a01b039091168152602001610137565b6101d8610213366004611a14565b6104af565b61022b610226366004611a14565b6104b9565b60405163ffffffff9091168152602001610137565b61016761024e366004611a14565b6104db565b610167610261366004611a14565b6104f6565b6101676102743660046119fb565b610514565b61012a610540565b61016761028f366004611a14565b61054f565b6101536102a2366004611995565b6105d5565b6101536102b5366004611995565b610650565b6101d86102c8366004611a40565b61065e565b6101d86102db366004611a98565b610790565b6101676102ee366004611b02565b6108f4565b610306610301366004611b35565b61091f565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610137565b60606003805461033f90611b75565b80601f016020809104026020016040519081016040528092919081815260200182805461036b90611b75565b80156103b85780601f1061038d576101008083540402835291602001916103b8565b820191906000526020600020905b81548152906001019060200180831161039b57829003601f168201915b5050505050905090565b6000336103d0818585610b4a565b60019150505b92915050565b6000336103ea858285610c6e565b6103f5858585610ce8565b506001949350505050565b600061040a610e80565b905090565b6000336103d081858561042283836108f4565b61042c9190611bbf565b610b4a565b600043821061045b5760405162461bcd60e51b815260040161045290611bd2565b60405180910390fd5b6001600160a01b038316600090815260086020526040902061047d9083610fa7565b9392505050565b61048e338261109d565b50565b6001600160a01b039081166000908152600760205260409020541690565b61048e33826110b5565b6001600160a01b0381166000908152600860205260408120546103d690610ad4565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0381166000908152600560205260408120546103d6565b60004382106105355760405162461bcd60e51b815260040161045290611bd2565b6103d6600983610fa7565b60606004805461033f90611b75565b6001600160a01b03811660009081526008602052604081205480156105c2576001600160a01b0383166000908152600860205260409020610591600183611c09565b815481106105a1576105a1611c1c565b600091825260209091200154600160201b90046001600160e01b03166105c5565b60005b6001600160e01b03169392505050565b600033816105e382866108f4565b9050838110156106435760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610452565b6103f58286868403610b4a565b6000336103d0818585610ce8565b834211156106ae5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610452565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610728906107209060a00160405160208183030381529060405280519060200120611135565b858585611183565b9050610733816111ab565b861461077d5760405162461bcd60e51b81526020600482015260196024820152784552433230566f7465733a20696e76616c6964206e6f6e636560381b6044820152606401610452565b61078781886110b5565b50505050505050565b834211156107e05760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610452565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861080f8c6111ab565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061086a82611135565b9050600061087a82878787611183565b9050896001600160a01b0316816001600160a01b0316146108dd5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610452565b6108e88a8a8a610b4a565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff841690811061096357610963611c1c565b60009182526020918290206040805180820190915291015463ffffffff81168252600160201b90046001600160e01b0316918101919091529392505050565b6001600160a01b0382166109f85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610452565b8060026000828254610a0a9190611bbf565b90915550506001600160a01b03821660008181526020818152604080832080548601905551848152600080516020611c81833981519152910160405180910390a3610a57600083836111d3565b5050565b600061047d8284611bbf565b60006001600160e01b03821115610ad05760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610452565b5090565b600063ffffffff821115610ad05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610452565b505050565b600061047d8284611c09565b6001600160a01b038316610bac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610452565b6001600160a01b038216610c0d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610452565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610c7a84846108f4565b90506000198114610ce25781811015610cd55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610452565b610ce28484848403610b4a565b50505050565b6001600160a01b038316610d4c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610452565b6001600160a01b038216610dae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610452565b6001600160a01b03831660009081526020819052604090205481811015610e265760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610452565b6001600160a01b0384811660008181526020818152604080832087870390559387168083529184902080548701905592518581529092600080516020611c81833981519152910160405180910390a3610ce28484846111d3565b6000306001600160a01b037f000000000000000000000000e412d46a0fbd567332b7689cfffe1f8a4f19a9d216148015610ed957507f000000000000000000000000000000000000000000000000000000000000000146145b15610f0357507f9b8a78f471ded45f6b1a874fb507209ee37c50030dc8ba0d8e9d682f16fe29b190565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f12c52f49dc1cafae31f8d4a5fe7512f616986e63f0627831e747d5b654e927ca828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b815460009081816005811115611001576000610fc2846111ee565b610fcc9085611c09565b600088815260209020909150869082015463ffffffff161115610ff157809150610fff565b610ffc816001611bbf565b92505b505b8082101561104e57600061101583836112d6565b600088815260209020909150869082015463ffffffff16111561103a57809150611048565b611045816001611bbf565b92505b50611001565b80156110875761107186611063600184611c09565b600091825260209091200190565b54600160201b90046001600160e01b031661108a565b60005b6001600160e01b03169695505050505050565b6110a782826112f1565b610ce26009610b3e83611418565b60006110c083610491565b905060006110cd846104db565b6001600160a01b0385811660008181526007602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610ce2828483611569565b60006103d6611142610e80565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061119487878787611682565b915091506111a18161173c565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b610b396111df84610491565b6111e884610491565b83611569565b60008160000361120057506000919050565b6000600161120d84611881565b901c6001901b9050600181848161122657611226611c32565b048201901c9050600181848161123e5761123e611c32565b048201901c9050600181848161125657611256611c32565b048201901c9050600181848161126e5761126e611c32565b048201901c9050600181848161128657611286611c32565b048201901c9050600181848161129e5761129e611c32565b048201901c905060018184816112b6576112b6611c32565b048201901c905061047d818285816112d0576112d0611c32565b04611915565b60006112e56002848418611c48565b61047d90848416611bbf565b6001600160a01b0382166113515760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610452565b6001600160a01b038216600090815260208190526040902054818110156113c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610452565b6001600160a01b038316600081815260208181526040808320868603905560028054879003905551858152919291600080516020611c81833981519152910160405180910390a3610b39836000846111d3565b825460009081908181156114645761143587611063600185611c09565b60408051808201909152905463ffffffff81168252600160201b90046001600160e01b03166020820152611479565b60408051808201909152600080825260208201525b905080602001516001600160e01b0316935061149984868863ffffffff16565b92506000821180156114b15750805163ffffffff1643145b156114f5576114bf83610a67565b6114ce88611063600186611c09565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561155f565b86604051806040016040528061150a43610ad4565b63ffffffff16815260200161151e86610a67565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b5050935093915050565b816001600160a01b0316836001600160a01b03161415801561158b5750600081115b15610b39576001600160a01b03831615611607576001600160a01b038316600090815260086020526040812081906115c690610b3e85611418565b91509150846001600160a01b0316600080516020611ca183398151915283836040516115fc929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610b39576001600160a01b0382166000908152600860205260408120819061163d90610a5b85611418565b91509150836001600160a01b0316600080516020611ca18339815191528383604051611673929190918252602082015260400190565b60405180910390a25050505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038311156116af5750600090506003611733565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611703573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661172c57600060019250925050611733565b9150600090505b94509492505050565b600081600481111561175057611750611c6a565b036117585750565b600181600481111561176c5761176c611c6a565b036117b45760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610452565b60028160048111156117c8576117c8611c6a565b036118155760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610452565b600381600481111561182957611829611c6a565b0361048e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610452565b600080608083901c1561189657608092831c92015b604083901c156118a857604092831c92015b602083901c156118ba57602092831c92015b601083901c156118cc57601092831c92015b600883901c156118de57600892831c92015b600483901c156118f057600492831c92015b600283901c1561190257600292831c92015b600183901c156103d65760010192915050565b6000818310611924578161047d565b5090919050565b600060208083528351808285015260005b818110156119585785810183015185820160400152820161193c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461199057600080fd5b919050565b600080604083850312156119a857600080fd5b6119b183611979565b946020939093013593505050565b6000806000606084860312156119d457600080fd5b6119dd84611979565b92506119eb60208501611979565b9150604084013590509250925092565b600060208284031215611a0d57600080fd5b5035919050565b600060208284031215611a2657600080fd5b61047d82611979565b803560ff8116811461199057600080fd5b60008060008060008060c08789031215611a5957600080fd5b611a6287611979565b95506020870135945060408701359350611a7e60608801611a2f565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215611ab357600080fd5b611abc88611979565b9650611aca60208901611979565b95506040880135945060608801359350611ae660808901611a2f565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611b1557600080fd5b611b1e83611979565b9150611b2c60208401611979565b90509250929050565b60008060408385031215611b4857600080fd5b611b5183611979565b9150602083013563ffffffff81168114611b6a57600080fd5b809150509250929050565b600181811c90821680611b8957607f821691505b6020821081036111cd57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156103d6576103d6611ba9565b6020808252601f908201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604082015260600190565b818103818111156103d6576103d6611ba9565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600082611c6557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724a26469706673582212206db796e92c6c44d3699544b975f68142396fa665b038ff59f3e30801c675419664736f6c63430008110033
0x6101406040523480156200001257600080fd5b506040516200271f3803806200271f833981016040819052620000359162000790565b6040805180820190915260018152603160f81b60208201528390819081856003620000618382620008ab565b506004620000708282620008ab565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c09485019091528151919096012090529290925261012052506200011b9050816a14adf4b7320334b900000062000124565b505050620009b9565b6200013b8282620001db60201b620009a21760201c565b6001600160e01b036200014f620002ac8216565b1115620001bc5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084015b60405180910390fd5b620001d5600962000a5b620002b260201b1783620002c9565b50505050565b6001600160a01b038216620002335760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620001b3565b80600260008282546200024791906200098d565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620002a86000838362000460565b5050565b60025490565b6000620002c082846200098d565b90505b92915050565b825460009081908181156200032957620002f887620002ea600185620009a3565b600091825260209091200190565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b031660208201526200033e565b60408051808201909152600080825260208201525b905080602001516001600160e01b031693506200035c84868860201c565b9250600082118015620003755750805163ffffffff1643145b15620003cc576200039183620004ac60201b62000a671760201c565b620003a388620002ea600186620009a3565b80546001600160e01b03929092166401000000000263ffffffff90921691909117905562000451565b866040518060400160405280620003ee436200051b60201b62000ad41760201c565b63ffffffff1681526020016200040f86620004ac60201b62000a671760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b505050565b620004788383836200045b60201b62000b391760201c565b6001600160a01b038381166000908152600760205260408082205485841683529120546200045b9291821691168362000582565b60006001600160e01b03821115620005175760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401620001b3565b5090565b600063ffffffff821115620005175760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401620001b3565b816001600160a01b0316836001600160a01b031614158015620005a55750600081115b156200045b576001600160a01b0383161562000632576001600160a01b038316600090815260086020908152604082208291620005ef9190620006bd901b62000b3e1785620002c9565b91509150846001600160a01b0316600080516020620026ff833981519152838360405162000627929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156200045b576001600160a01b038216600090815260086020908152604082208291620006769190620002b2901b62000a5b1785620002c9565b91509150836001600160a01b0316600080516020620026ff8339815191528383604051620006ae929190918252602082015260400190565b60405180910390a25050505050565b6000620002c08284620009a3565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620006f357600080fd5b81516001600160401b0380821115620007105762000710620006cb565b604051601f8301601f19908116603f011681019082821181831017156200073b576200073b620006cb565b816040528381526020925086838588010111156200075857600080fd5b600091505b838210156200077c57858201830151818301840152908201906200075d565b600093810190920192909252949350505050565b600080600060608486031215620007a657600080fd5b83516001600160401b0380821115620007be57600080fd5b620007cc87838801620006e1565b94506020860151915080821115620007e357600080fd5b50620007f286828701620006e1565b604086015190935090506001600160a01b03811681146200081257600080fd5b809150509250925092565b600181811c908216806200083257607f821691505b6020821081036200085357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200045b57600081815260208120601f850160051c81016020861015620008825750805b601f850160051c820191505b81811015620008a3578281556001016200088e565b505050505050565b81516001600160401b03811115620008c757620008c7620006cb565b620008df81620008d884546200081d565b8462000859565b602080601f831160018114620009175760008415620008fe5750858301515b600019600386901b1c1916600185901b178555620008a3565b600085815260208120601f198616915b82811015620009485788860151825594840194600190910190840162000927565b5085821015620009675787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820180821115620002c357620002c362000977565b81810381811115620002c357620002c362000977565b60805160a05160c05160e0516101005161012051611cf662000a096000396000610f0a01526000610f5901526000610f3401526000610e8d01526000610eb701526000610ee10152611cf66000f3fe608060405234801561001057600080fd5b506004361061011d5760003560e01c806306fdde0314610122578063095ea7b31461014057806318160ddd1461016357806323b872dd14610175578063313ce567146101885780633644e51514610197578063395093511461019f5780633a46b1a8146101b257806342966c68146101c5578063587cde1e146101da5780635c19a95c146102055780636fcfff451461021857806370a08231146102405780637ecebe00146102535780638e539e8c1461026657806395d89b41146102795780639ab24eb014610281578063a457c2d714610294578063a9059cbb146102a7578063c3cda520146102ba578063d505accf146102cd578063dd62ed3e146102e0578063f1127ed8146102f3575b600080fd5b61012a610330565b604051610137919061192b565b60405180910390f35b61015361014e366004611995565b6103c2565b6040519015158152602001610137565b6002545b604051908152602001610137565b6101536101833660046119bf565b6103dc565b60405160128152602001610137565b610167610400565b6101536101ad366004611995565b61040f565b6101676101c0366004611995565b610431565b6101d86101d33660046119fb565b610484565b005b6101ed6101e8366004611a14565b610491565b6040516001600160a01b039091168152602001610137565b6101d8610213366004611a14565b6104af565b61022b610226366004611a14565b6104b9565b60405163ffffffff9091168152602001610137565b61016761024e366004611a14565b6104db565b610167610261366004611a14565b6104f6565b6101676102743660046119fb565b610514565b61012a610540565b61016761028f366004611a14565b61054f565b6101536102a2366004611995565b6105d5565b6101536102b5366004611995565b610650565b6101d86102c8366004611a40565b61065e565b6101d86102db366004611a98565b610790565b6101676102ee366004611b02565b6108f4565b610306610301366004611b35565b61091f565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610137565b60606003805461033f90611b75565b80601f016020809104026020016040519081016040528092919081815260200182805461036b90611b75565b80156103b85780601f1061038d576101008083540402835291602001916103b8565b820191906000526020600020905b81548152906001019060200180831161039b57829003601f168201915b5050505050905090565b6000336103d0818585610b4a565b60019150505b92915050565b6000336103ea858285610c6e565b6103f5858585610ce8565b506001949350505050565b600061040a610e80565b905090565b6000336103d081858561042283836108f4565b61042c9190611bbf565b610b4a565b600043821061045b5760405162461bcd60e51b815260040161045290611bd2565b60405180910390fd5b6001600160a01b038316600090815260086020526040902061047d9083610fa7565b9392505050565b61048e338261109d565b50565b6001600160a01b039081166000908152600760205260409020541690565b61048e33826110b5565b6001600160a01b0381166000908152600860205260408120546103d690610ad4565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0381166000908152600560205260408120546103d6565b60004382106105355760405162461bcd60e51b815260040161045290611bd2565b6103d6600983610fa7565b60606004805461033f90611b75565b6001600160a01b03811660009081526008602052604081205480156105c2576001600160a01b0383166000908152600860205260409020610591600183611c09565b815481106105a1576105a1611c1c565b600091825260209091200154600160201b90046001600160e01b03166105c5565b60005b6001600160e01b03169392505050565b600033816105e382866108f4565b9050838110156106435760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610452565b6103f58286868403610b4a565b6000336103d0818585610ce8565b834211156106ae5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610452565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610728906107209060a00160405160208183030381529060405280519060200120611135565b858585611183565b9050610733816111ab565b861461077d5760405162461bcd60e51b81526020600482015260196024820152784552433230566f7465733a20696e76616c6964206e6f6e636560381b6044820152606401610452565b61078781886110b5565b50505050505050565b834211156107e05760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610452565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861080f8c6111ab565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061086a82611135565b9050600061087a82878787611183565b9050896001600160a01b0316816001600160a01b0316146108dd5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610452565b6108e88a8a8a610b4a565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff841690811061096357610963611c1c565b60009182526020918290206040805180820190915291015463ffffffff81168252600160201b90046001600160e01b0316918101919091529392505050565b6001600160a01b0382166109f85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610452565b8060026000828254610a0a9190611bbf565b90915550506001600160a01b03821660008181526020818152604080832080548601905551848152600080516020611c81833981519152910160405180910390a3610a57600083836111d3565b5050565b600061047d8284611bbf565b60006001600160e01b03821115610ad05760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610452565b5090565b600063ffffffff821115610ad05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610452565b505050565b600061047d8284611c09565b6001600160a01b038316610bac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610452565b6001600160a01b038216610c0d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610452565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610c7a84846108f4565b90506000198114610ce25781811015610cd55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610452565b610ce28484848403610b4a565b50505050565b6001600160a01b038316610d4c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610452565b6001600160a01b038216610dae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610452565b6001600160a01b03831660009081526020819052604090205481811015610e265760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610452565b6001600160a01b0384811660008181526020818152604080832087870390559387168083529184902080548701905592518581529092600080516020611c81833981519152910160405180910390a3610ce28484846111d3565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610ed957507f000000000000000000000000000000000000000000000000000000000000000046145b15610f0357507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b815460009081816005811115611001576000610fc2846111ee565b610fcc9085611c09565b600088815260209020909150869082015463ffffffff161115610ff157809150610fff565b610ffc816001611bbf565b92505b505b8082101561104e57600061101583836112d6565b600088815260209020909150869082015463ffffffff16111561103a57809150611048565b611045816001611bbf565b92505b50611001565b80156110875761107186611063600184611c09565b600091825260209091200190565b54600160201b90046001600160e01b031661108a565b60005b6001600160e01b03169695505050505050565b6110a782826112f1565b610ce26009610b3e83611418565b60006110c083610491565b905060006110cd846104db565b6001600160a01b0385811660008181526007602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610ce2828483611569565b60006103d6611142610e80565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061119487878787611682565b915091506111a18161173c565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b610b396111df84610491565b6111e884610491565b83611569565b60008160000361120057506000919050565b6000600161120d84611881565b901c6001901b9050600181848161122657611226611c32565b048201901c9050600181848161123e5761123e611c32565b048201901c9050600181848161125657611256611c32565b048201901c9050600181848161126e5761126e611c32565b048201901c9050600181848161128657611286611c32565b048201901c9050600181848161129e5761129e611c32565b048201901c905060018184816112b6576112b6611c32565b048201901c905061047d818285816112d0576112d0611c32565b04611915565b60006112e56002848418611c48565b61047d90848416611bbf565b6001600160a01b0382166113515760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610452565b6001600160a01b038216600090815260208190526040902054818110156113c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610452565b6001600160a01b038316600081815260208181526040808320868603905560028054879003905551858152919291600080516020611c81833981519152910160405180910390a3610b39836000846111d3565b825460009081908181156114645761143587611063600185611c09565b60408051808201909152905463ffffffff81168252600160201b90046001600160e01b03166020820152611479565b60408051808201909152600080825260208201525b905080602001516001600160e01b0316935061149984868863ffffffff16565b92506000821180156114b15750805163ffffffff1643145b156114f5576114bf83610a67565b6114ce88611063600186611c09565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561155f565b86604051806040016040528061150a43610ad4565b63ffffffff16815260200161151e86610a67565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b5050935093915050565b816001600160a01b0316836001600160a01b03161415801561158b5750600081115b15610b39576001600160a01b03831615611607576001600160a01b038316600090815260086020526040812081906115c690610b3e85611418565b91509150846001600160a01b0316600080516020611ca183398151915283836040516115fc929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610b39576001600160a01b0382166000908152600860205260408120819061163d90610a5b85611418565b91509150836001600160a01b0316600080516020611ca18339815191528383604051611673929190918252602082015260400190565b60405180910390a25050505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038311156116af5750600090506003611733565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611703573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661172c57600060019250925050611733565b9150600090505b94509492505050565b600081600481111561175057611750611c6a565b036117585750565b600181600481111561176c5761176c611c6a565b036117b45760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610452565b60028160048111156117c8576117c8611c6a565b036118155760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610452565b600381600481111561182957611829611c6a565b0361048e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610452565b600080608083901c1561189657608092831c92015b604083901c156118a857604092831c92015b602083901c156118ba57602092831c92015b601083901c156118cc57601092831c92015b600883901c156118de57600892831c92015b600483901c156118f057600492831c92015b600283901c1561190257600292831c92015b600183901c156103d65760010192915050565b6000818310611924578161047d565b5090919050565b600060208083528351808285015260005b818110156119585785810183015185820160400152820161193c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461199057600080fd5b919050565b600080604083850312156119a857600080fd5b6119b183611979565b946020939093013593505050565b6000806000606084860312156119d457600080fd5b6119dd84611979565b92506119eb60208501611979565b9150604084013590509250925092565b600060208284031215611a0d57600080fd5b5035919050565b600060208284031215611a2657600080fd5b61047d82611979565b803560ff8116811461199057600080fd5b60008060008060008060c08789031215611a5957600080fd5b611a6287611979565b95506020870135945060408701359350611a7e60608801611a2f565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215611ab357600080fd5b611abc88611979565b9650611aca60208901611979565b95506040880135945060608801359350611ae660808901611a2f565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611b1557600080fd5b611b1e83611979565b9150611b2c60208401611979565b90509250929050565b60008060408385031215611b4857600080fd5b611b5183611979565b9150602083013563ffffffff81168114611b6a57600080fd5b809150509250929050565b600181811c90821680611b8957607f821691505b6020821081036111cd57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156103d6576103d6611ba9565b6020808252601f908201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604082015260600190565b818103818111156103d6576103d6611ba9565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600082611c6557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724a26469706673582212206db796e92c6c44d3699544b975f68142396fa665b038ff59f3e30801c675419664736f6c63430008110033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001de4ee24eda5df3c754fe4ee9bad08d9b22383ef00000000000000000000000000000000000000000000000000000000000000055a69766f6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035a56450000000000000000000000000000000000000000000000000000000000